Poslao: 11 Apr 2012 19:27
|
offline
- galeon
- Novi MyCity građanin
- Pridružio: 11 Apr 2012
- Poruke: 21
- Gde živiš: Banja Luka
|
Kao novi član ovog foruma želim najprije da pozdravim sve ostale članove.
Nakon kratke uvodne riječi (za dužu nisam sposoban ) htio bih zamoliti nekog od članova koji
je voljan da mi odgovori na jedno početničko pitanje vezano za php i mysql. Naime o čemu se radi,
imam jedan problem za koji ne znam da pronađem rješenje već duže vrijeme, a radi se o slijedećem:
Imam bazu podataka sa 5 tabela (marka_vozila,model_vozila,vozilo,oprema,vozilo_oprema) iz kojih
naravno vučem podatke i treba da ih zatim putem php skripte proslijedim u html tabelu.
Podatke vučem uz pomoć while petlje, rezultate smještam u varijable a zatim varijable u html
formu. E, tu nastaje problem! Na slici možete već naslutiti o čemu se radi i šta me muči
Zapravo, htio bih da umjesto onih silnih redova, koje je petlja izbacila, napravim samo dva reda, tako da mi lista opreme nekog vozila bude smještena u jedan red i povezana sa odgovarajućim modelom vozila kojem ona pripada.
|
|
|
Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
|
|
Poslao: 11 Apr 2012 23:03
|
offline
- lnenad
- Stručni saradnik
Web
- Pridružio: 16 Jan 2007
- Poruke: 2860
- Gde živiš: Bijeljina
|
Prvo, dobrodosao na forum
Drugo, kada vec imas sifru vozila u tabeli oprema/vozilo_opema, imas kolonu id ili sifra u kojoj se nalazi sifra vozila. Upit radis sa WHERE sifra = '".$sifra."'.
Ili, imas kolonu u kojoj smjestis svu opremu koje auto posjeduje dodavajuci * ili neki drugi znak izmedju unosa. Kada zelis da prikazes samo uradis explode i dobijas niz u kome se nalazi oprema.
|
|
|
|
Poslao: 12 Apr 2012 11:15
|
offline
- galeon
- Novi MyCity građanin
- Pridružio: 11 Apr 2012
- Poruke: 21
- Gde živiš: Banja Luka
|
Zahvaljujem ti se na brzom odgovoru, vremenu i volji da se gnjaviš sa još jednim početnikom.
Volio bih da mogu reći da mi je jasno šta dalje trebam raditi poslije tvog odgovara ali (uvijek postoji barem jedno) nisam siguran.
Evo, dopuniću svoje prethodno pitanje slikama koje govore o tome kako mi je organizovana sama baza i kakve sam veze napravio između samih tabela unutar nje.
Koliko sam ja do sada shvatio, while petlja se vrti svaki put iznova kroz čitavu bazu i ispisuje nove redove iz nje sve dok ima podataka u kolonama u tabeli vozilo_oprema.
A ja sve vrijeme nastojim naći riješenje kako da to spriječim, jer želim da jednim prolaskom petlje kroz bazu ona pokupi sve podatke i posloži ih onako kako sam zamislio; očigledno je da negdje debelo griješim. Da li se problem može riješiti samo kroz sql ili se pak ovaj problem treba rješavati pomoću php-a, nemam pojma?
|
|
|
|
Poslao: 12 Apr 2012 22:46
|
offline
- Pridružio: 16 Jan 2010
- Poruke: 241
- Gde živiš: Zemun
|
Jedno pitanje, da li upis podataka u bazu mora ovako? Što za svaki tip opreme praviš novi unos? Ja bih to rešio tako što bi svu opremu smestio u jedan unos i onda ovaj problem nećeš imati.
|
|
|
|
Poslao: 13 Apr 2012 00:30
|
offline
- lnenad
- Stručni saradnik
Web
- Pridružio: 16 Jan 2007
- Poruke: 2860
- Gde živiš: Bijeljina
|
Ne valja ti organizacija baze, previse tabela za malo posla
Ovako, ovo ti je jedan od mogucih nacina da ovo sredis, napravi ti sebi fino jednu tabelu, vozilo
Vozilo
ID
Marka
Boja
Kilometraza
To i to
to i to
Oprema
ID vozila
Ime opreme
Da ti ne pisem kod, nadam se da ces da shvatis logicki. Kada stavis korisniku da bira opremu, skripta unosi podatke u tabelu oprema i pri tom upisuje id vozila i samim tim vezuje tu opremu za to vozilo. Kada radis ispis podataka pustis kroz petlju da ispise svu opremu gdje je ID vozila = odredjeni broj.
E sada, ako ne zelis da imas while petlju, mozes to ovako da uradis, ali je ovo komplikovaniji nacin.
Vozilo
ID
Marka
Boja
Kilometraza
Oprema
Kako ce ovo da izgleda kada se unesu podaci.
Vozilo
1
Opel Astra
Crvena
100252
Klima*Servo volan*Daljinsko zakljucavanje*Nesto ekstra
Kada radis ispis ne treba ti while petlja koja opterecuje bazu, nego povuces jedan red sa odredjenim IDjem vozila, i u koloni oprema ti se sve nalazi. Pomocu komande explode ti tu jednu promjenljivu pretvaras u niz, jer smo svu opremu koju auto ima razdvojili zvjezdicom. Sam ispis podataka moras sa petljom nazalost Npr.
$red = mysql_fetch_assoc($upit);
$oprema = explode("*",$red);
i sada ispis ovako
$t = 0;
while (isset($oprema[$t])) {
echo $oprema[$t];
$t++;
}
Nadam se da si me razumio
|
|
|
|
Poslao: 13 Apr 2012 10:16
|
offline
- galeon
- Novi MyCity građanin
- Pridružio: 11 Apr 2012
- Poruke: 21
- Gde živiš: Banja Luka
|
Zahvaljujem ti se na odgovorima.
Pokušat ću odraditi ovaj zadatak koji imam po tvojim preporukama, ono što mi sad možda trenutno nije jasno iz tvog odgovora valjda će mi se samo kazati (što bi rek'o naš narod) kad počnem raditi.Ako mi gdje zapne ponovo ću se javiti za savjet - važi li
Prvo što ću uraditi je, da ću ponovo iščitati tutorijale u vezi s sql-om, pregledaću i kako radi ova funkcija explode u php-u, pa početi vježbati.
Pozdrav
|
|
|
|
|