[PHP] Zamiana danych z bazy na dane "czytelne" dla użytkownika


(bogdanos0) #1

Witam,

Tworzę pewną wyszukiwarkę opartą na filtry, chcąc skompresować rozmiar bazy danych MySQL wymyśliłem sobie, że dane jakie będa się zapisywać w bazie będą w krótszej formie niż te wyświetlane użytkownikom, na przykład:

Użytkownik widzi na stronie słowo “POLSKA”, a w bazie w kolumnie ‘kraje’ jest to wartość “01”, dla “BUŁGARIA” jest to wartość “02”, itd…

Ale takie rozwiązanie wydłuża działanie całego skryptu, niestety nie jest to ekonomiczne.

Czy istnieje jakiś sposób w PHP dzięki któremu w bazie wartość 01 to POLSKA na stronie www?

Dopuszczam też myśl, żeby zapisywać w bazie takie same wartości jak te wyświetlane na stronie, ale rozmiar bazy zaraz się powiększy…

Co robić?

PS

Powiedzmy, że szukam rozwiązania na wzór szyfrowania i deszyfrowania danych.


(Fizyda) #2
  1. Nie wiem gdzie jest problem w takim rozwiązaniu

  2. Bez sensu używać switch równie dobrze może to zrobić sama baza danych, ba nawet powinna

  3. Bez kodu skąd ktoś ma Ci powiedzieć gdzie masz błąd?


(bogdanos0) #3
  1. To napisz jak?

    do {

     			// WIDOK LISTY - BODY
     			echo 'tr style="color:#949494"
     				td'.$wiersz[7].'/td !-- Miasto --
     				td'.$wiersz[8].'/td !-- Kraj --
     			/tr';
     		} while ($wiersz = mysql_fetch_row($idzapytania));
    

Na wzór, taką pętlą wyciągam, pokazywanie zapytania do bazy itd… jest zbędne w tym wypadku.

I przykładowy switch

switch ($wiersz[8]){ //PINLOCK
				case "01": $wiersz[8] = 'POLSKA'; break;
				case "02": $wiersz[8] = 'BUŁGARIA'; break;
.
.
. itd...
			}

 


(ziggurad) #4

Tworzysz tabelkę w bazie danych z kolejnymi krajami i jego id’kami, np: 1 | Polska, 2 | Grecja, do głównej tabelki wrzucasz tylko id kraju.

Poczytaj o kluczach obcych…


(bogdanos0) #5

Dzięki wielkie, chyba tego szukałem :slight_smile: za chwilę siadam i robię to.


(Fizyda) #6

plus przy pobieraniu danych robisz z tą tabelką (słownikiem) joina, a w wyniku odrzucasz id kraju a zastawiasz już samą jego nazwę.

Switch nie działa bo go nie robisz w pętli tylko na jednym elemencie.