Pitanje vezano za PHP i MYSQL

Pitanje vezano za PHP i MYSQL

offline
  • galeon  Male
  • 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 Smile ) 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 Smile
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.
offline
  • lnenad  Male
  • Stručni saradnik
    Web
  • Nenad
  • Arhitetak
  • Pridružio: 16 Jan 2007
  • Poruke: 2860
  • Gde živiš: Bijeljina

Prvo, dobrodosao na forum Smile

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.



offline
  • galeon  Male
  • 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?




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.

offline
  • lnenad  Male
  • Stručni saradnik
    Web
  • Nenad
  • Arhitetak
  • Pridružio: 16 Jan 2007
  • Poruke: 2860
  • Gde živiš: Bijeljina

Ne valja ti organizacija baze, previse tabela za malo posla Smile

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 Smile 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 Smile

offline
  • galeon  Male
  • 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 Smile
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

offline
  • lnenad  Male
  • Stručni saradnik
    Web
  • Nenad
  • Arhitetak
  • Pridružio: 16 Jan 2007
  • Poruke: 2860
  • Gde živiš: Bijeljina

galeon ::
Ako mi gdje zapne ponovo ću se javiti za savjet - važi li Smile


Važi Smile

Ko je trenutno na forumu
 

Ukupno su 852 korisnika na forumu :: 5 registrovanih, 0 sakrivenih i 847 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: draggan, opt1, Shilok, simazr, zlaya011