![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 28.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
Hej.
2 petle while, sciaganie rekordow z bazy danych, i co wazne, stosunek pól jeden do wielu (jeden serwis, wiele obsługiwanych marek, poprzez łączącą tabele grupas). Ma to wygladac mw. w taki sposob: serwis1 (miasto adres) auto1 auto2 auto3 serwis2 (miasto adres) auto1 auto4 Generalnie chodzi o to, zeby samochody byly wyswietlane, a nazwy serwisow i ich adresy sie nie powtarzaly. Ściągam id_grupys z tabeli serwis, na tej podstawie drukuje nazwy aut, za pomocą łączącej tabeli grupas. Niestety wewnetrzna petla przechodzi sobie raz, drukując samochody z pierwszego serwisu, a jak pojawia się nowa wartosc id_grupys, pasująca do nowego serwisu, wewnetrzna petla już nie chce się włączyć. $wiersz moze już przyjęło maksymalną wartość? Nie mam pojęcia, czemu tak sie dzieje. Oto kod: Kod $zapytanie = "SELECT * FROM serwis AS a JOIN miasto AS b ON a.id_miasta = b.id_miasta LEFT JOIN grupas AS c ON a.id_grupys = c.id_grupys LEFT JOIN auta AS d ON c.id_auta = d.id_auta"; $idzapytania = mysql_query($zapytanie); $zapytanies = "SELECT * FROM `serwis` AS a LEFT JOIN `grupas` AS c ON a.id_grupys = c.id_grupys LEFT JOIN `auta` AS d ON c.id_auta = d.id_auta ORDER BY `a`.`id_grupys`"; $idzapytanias = mysql_query($zapytanies); echo ( "<TABLE border=0><TR> <td width=200><b><left><font color=#000099>Nazwa:</b></td> <td width=90><b><left><font color=#000099>miasto:</b></td> <td width=120><b><left><font color=#000099>Adres:</b></td> <td width=120><b><left><font color=#000099 align=left> Auta:</b></td></tr> "); while ($wiersz = mysql_fetch_assoc($idzapytania)) { if ($wiersz["nazwa"] <> $nazwastara) { aby nie powtarzaly sie komorki z danymi serwisu echo( "<tr><td><left> ".$wiersz["nazwa"]."</td>"); echo( "<td><left> ".$wiersz["city"]."</td>"); echo( "<td><left> ".$wiersz["adres"]."</td>"); $idgrupys = $wiersz["id_grupys"]; // tu wlasnie przypisuje wartosc id grupy samochodow, na ktorej podstawie w petli ponizej wydrukuja mi sie auta $nazwastara = $wiersz["nazwa"]; while ($wiersz = mysql_fetch_array($idzapytanias)) //ta petla co chodzi tylko raz, a powinna za kazdym razem jak skonczy petle u gory { echo " < ".$wiersz["id_grupys"]." i ".$idgrupys." > "; // drukuje sobie czy sie zgadza wartosc wyznaczona wczesniej z ta w tabeli if ($wiersz["id_grupys"] == $idgrupys) { echo( "<td><left> ".$wiersz["auto"]."</td></tr> "); echo( "<td></td> <td></td> <td></td> "); } } } } Wyglada to tak: http://gdzieserwisowac.pl/problem.jpg niestety auta powinny sie drukowac dla kazdego serwisu, a nie tylko dla pierwszego. Pomoze mi ktos? Ten post edytował convicted 29.04.2009, 13:32:22 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 11:54 |