![]() |
![]() ![]() |
![]() |
--Grzegorz-- |
![]()
Post
#1
|
Goście ![]() |
Witam,
mam pytanie - jak działa pętla WHILE w sytuacji, kiedy pobieram dane z kilku tablic MYSQL (SELECT .... FROM .... AS ....)? Kiedy wykonałem pętle WHILE przy wyborze jednej tablicy, wszystko wyświetliło się prawidłowo:
Ale kiedy próbowałem tego samego z dwiema tablicami, wynik wyświetlił mi się kilka(dziesiąt? set?) razy - w kółko.
Gdzie popełniłem błąd? |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 856 Pomógł: 19 Dołączył: 30.08.2005 Skąd: 100lica Ostrzeżenie: (0%) ![]() ![]() |
Błąd masz w zapytaniu. Pętla działa prawidłowo.
W zapytaniu nie dałeś warunku łączenia tabel przez co dostaniesz x*y wyników bo każdy rekord tablicy x został połączony z każdym rekorem z bazy y |
|
|
--Grzegorz-- |
![]()
Post
#3
|
Goście ![]() |
Dziękuję bardzo - pomogło (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) . Teraz pętla wykonuje się prawidłowo.
Chciałbym teraz przejść do następnego kroku, tzn. połączyć otrzymane rezultaty $k z odpowiednią 'nazwą_kursu' dobieraną wg klucza 'id_kursu". Inaczej mówiąc - chciałbym, żeby skrypt skojarzył otrzymane wyniki $k (pięciocyfrowe liczby) z odpowiednimi 'id_kursu' i przyporządkował im adekwatną 'nazwę_kursu'. Myślałem, że wystarczy tutaj warunek if:
...Ale to nie zadziałało. Nie zadziałało też "==", ani użycie pętli for. Gdzie się mylę? |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 492 Pomógł: 33 Dołączył: 16.08.2007 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
--Grzegorz-- |
![]()
Post
#5
|
Goście ![]() |
Jesteś pewien, że taki kod nie działa? P.S. Wcinaj kod prawidłowo, a dobrze na tym wyjdziesz. Nie... nie działa. Dla każdego ośrodka ('nazwa') wyświetla tylko jeden (pierwszy) wynik 'nazwa_kursu'. A tych wyników powinna być cała lista (osobna lista dla każdego z ośrodków). |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 492 Pomógł: 33 Dołączył: 16.08.2007 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Prześlij mi wywołanie funkcji var_dump($wykonaj);
Bo inaczej nie umiem Ci pomóc, nie znam struktury Twojej bazy danych i tego, co zwraca mysql_fetch_assoc()... A ten kod jest trochę niejasno napisany i nie umiem dojść, do czego on ma służyć... |
|
|
--Grzegorz-- |
![]()
Post
#7
|
Goście ![]() |
Prześlij mi wywołanie funkcji var_dump($wykonaj); Bo inaczej nie umiem Ci pomóc, nie znam struktury Twojej bazy danych i tego, co zwraca mysql_fetch_assoc()... A ten kod jest trochę niejasno napisany i nie umiem dojść, do czego on ma służyć... Hazel - może zadam bardziej ogólne pytanie: w jaki sposób mogę skojarzyć elementy zapisane w ciągu 'tagów' (w moim wypadku jest to 'kursy' - np. "31965;89545;94356;") z tabeli 1 (tabela 'osrodki') z konkretnymi rekordami z tabeli 2 (w moim wypadku chodzi o 'nazwa_kursu' z tabeli 'kursy', gdzie 'id_kursu' powinien być identyczny z wynikami ciągu; np. "31965 - Audytor wewnętrzny", "89545 - Programista Java", "94356 - Makler giełdowy"). Czyli - usuwając nawiasy (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) - w jaki sposób mogę skojarzyć elementy zapisane w ciągu 'tagów' z tabeli 1 z konkretnymi rekordami z tabeli 2? |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 492 Pomógł: 33 Dołączył: 16.08.2007 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Nie bardzo wiem, co masz na myśli, mówiąc "skojarzyć". Porównać? Przypisać jedno do drugiego?
|
|
|
--Grzegorz-- |
![]()
Post
#9
|
Goście ![]() |
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 09:33 |