Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Dohvat određenog parametra

[es] :: PHP :: PHP za početnike :: Dohvat određenog parametra

[ Pregleda: 1627 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

feniks-sd

Član broj: 163192
Poruke: 173
*.adsl.net.t-com.hr.



+2 Profil

icon Dohvat određenog parametra11.09.2010. u 14:00 - pre 165 meseci
Imam bazu podataka o userima. Unutar baze nalazi se tablica sa podacima o userima, između ostaloga i parametri usera koji su spremljeni npr ovako

Code:
language= 
editor= tyni
helpsite= 
timezone=0 
valid=2010-09-27 


Znaći pojedini podaci su odvojeni sa novim redom.
Pojedine podatke nakon što ih uzmem iz baze podataka razdvojim na ovaj način.

Code:

$data="$sql_result[0] ;
list ($param1, $param2, $param3, $param4) =expolode ("\n" , $data) ;


Moj problem mi je taj što ponekad nemam sve ove parametre , ili imam neke druge. Nemam nikada definirano koliko je tih paramentara niti to mogu definirati. Svaki user može imati različite parametre.

Iz tih razloga ova metoda nije primjenjiva jer ja želim npr samo parametar "valid".

Kako bi to elagentno riješio.

 
Odgovor na temu

Nikola Poša
Backend (PHP) developer
Beograd

Član broj: 173839
Poruke: 1616
*.adsl-a-6.sezampro.rs.



+33 Profil

icon Re: Dohvat određenog parametra11.09.2010. u 15:11 - pre 165 meseci
Sa takvim podacima u bazi skalabilnost je očajna. Ne znam od koga si video da se podaci na taj način čuvaju u bazi. Za tako nešto onda nisi ni morao da koristiš SQL bazu. Moj predlog ti je da napraviš jednu dodatnu tabelu koja bi čuvala sve te neke dodatne opcije i parametre za svakog korisnika, a često ćeš za takve podatke naići na pojam meta podaci. Što se kolona u toj tabeli tiče, pored primarnog ključa (id), kao i ključa koji bi predstavljao vezu sa tabelom sa korisnicima, npr. user_id, ona bi trebala da ima kolone key i value, koji bi predstavljali upravo naziv nekog parametra/opcije (key) i njenu vrednost (value). I evo kako bi onda izgledao taj tvoj primer sa dohvatanjem "valid" opcije:
Code:
SELECT u.username, um.value AS 'valid' 
FROM users u
INNER JOIN users_meta um ON u.id = um.user_id
WHERE um.key = 'valid'

Pritom je uvek sigurnije da tabele join-uješ sa LEFT OUTER JOIN klauzulom, jer ne mora da znači da će za nekog korisnik postojati neki parametar/opcija.

Ovde imaš jedan odličan članak koji opisuje upravo taj pristup organizacije baze.
 
Odgovor na temu

Goran Rakić
Beograd

Moderator
Član broj: 999
Poruke: 3766

Sajt: blog.goranrakic.com


+125 Profil

icon Re: Dohvat određenog parametra11.09.2010. u 16:24 - pre 165 meseci
Slažem se sa ovim što je Nikola napisao, savet ti je da promeniš strukturu zapisa.

Inače problem koji te muči lako rešavaš ako kada pročitaš podatke razbiješ redove u niz (explode()) i potom u petlji svaki red razbiješ na ključ i vrednost (pre i posle znaka jednako) i zapišeš u asocijativni niz $params[$key] = $value;. Ako prethodno inicijalizuješ $params na podrazumevane vrednosti možeš uvek da pročitaš sve parametre, u protivnom proveravaš sa if( isset($params['valid']) ) { ... }.
http://sr.libreoffice.org — slobodan kancelarijski paket, obrada teksta, tablice,
prezentacije, legalno bez troškova licenciranja
 
Odgovor na temu

feniks-sd

Član broj: 163192
Poruke: 173
*.adsl.net.t-com.hr.



+2 Profil

icon Re: Dohvat određenog parametra12.09.2010. u 05:25 - pre 165 meseci
Baza podataka je od CMS sustava čiji ja nisam autor i nemam utjecaj na strukturu baze podataka, pa tako sve do sada gore navedeno pada u vodu. U međuvremenu riješio sam problem korištenjem već ugrađenih procedura u sam CMS.
 
Odgovor na temu

[es] :: PHP :: PHP za početnike :: Dohvat određenog parametra

[ Pregleda: 1627 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.