Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] problem z lista rozwijalna
Forum PHP.pl > Forum > Przedszkole
Gość
Witam,

Mam taki kod :

  1. $formularz="<FORM method=\"POST\" action=\"baza.php?typ=klient&akcja=dodaj\">
  2.  
  3. Wpisz unikalną nazwę
  4. </BR>
  5. <INPUT type=\"text\" name=\"nazwa_klient\" class=\"wyslij_formularz\" maxlenght=\"30\">
  6. </BR>
  7. <SELECT NAME=\"miejsce_pobrania\" CLASS=\"formularz\" style=\"width: 140px; margin-top: 15px; margin-left: 15px\">
  8. <OPTION VALUE=\"\">--Wybierz miejsce pobrania--</option>";
  9. #--pobierz dzielnice
  10. $sort_sql=mysql_query("SELECT * FROM sortownia");
  11. while ($sort_wynik=mysql_fetch_array($sort_sql))
  12. {
  13. $sortownia_id=$sort_wynik['id_sortownia'];
  14. $sortownia_nazwa=$sort_wynik['nazwa_sortownia'];
  15. $formularz.="<OPTION VALUE=\"$sortownia_id\">$sortownia_nazwa</option>";
  16. }
  17. $formularz.="</select>
  18.  
  19. <SELECT NAME=\"miejsce_zdania\" CLASS=\"formularz\" style=\"width: 140px; margin-top: 15px; margin-left: 15px\">
  20. <OPTION VALUE=\"\">--Wybierz miejsce zdania</option>";
  21.  
  22. while ($sort_wynik=mysql_fetch_array($sort_sql))
  23. {
  24. $sortownia_id=$sort_wynik['id_sortownia'];
  25. $sortownia_nazwa=$sort_wynik['nazwa_sortownia'];
  26. $formularz.="<OPTION VALUE=\"$sortownia_id\">$sortownia_nazwa</option>";
  27. }
  28. $formularz.="</select>



mimo ze te 2 selecty roznia się tylko polem name to pierwszy działa a drug wyswietla --Wybierz miejsce zdania ale nie ma listy rozwiajlnej tak jak to ma miejsce pry pierwszym selecie
kokers
Nie działa ponieważ w pierwszej pętli przeszedłeś przez wszystkie wiersze z wyniku zapytania. Wskaźnik po tej pętli jest na końcu. każde wywołanie mysql_fetch_array powoduje automatyczne przesunięcie tego wskaźnika o jeden. Jak przejdzie przez wszsystkie wiersze to każde kolejne wywołanie zwróci FALSE bo nie ma więcej wierszy, dlatego w tej drugiej pętli wyniki są puste.

Natomiast z punktu widzenia szybkości i optymalizacji, nie rozumiem dlaczego masz dwie pętle które robią dokładnie to samo. Zrób po prostu

$formularz1 i $formularz2 a potem to ewentualnie połącz czyli coś w tym stylu:

  1. $formularz1="<FORM method=\"POST\" action=\"baza.php?typ=klient&akcja=dodaj\">
  2.  
  3. Wpisz unikalną nazwę
  4. </BR>
  5. <INPUT type=\"text\" name=\"nazwa_klient\" class=\"wyslij_formularz\" maxlenght=\"30\">
  6. </BR>
  7. <SELECT NAME=\"miejsce_pobrania\" CLASS=\"formularz\" style=\"width: 140px; margin-top: 15px; margin-left: 15px\">
  8. <OPTION VALUE=\"\">--Wybierz miejsce pobrania--</option>";
  9.  
  10. $formularz2 = "<SELECT NAME=\"miejsce_zdania\" CLASS=\"formularz\" style=\"width: 140px; margin-top: 15px; margin-left: 15px\">
  11. <OPTION VALUE=\"\">--Wybierz miejsce zdania</option>";
  12.  
  13. #--pobierz dzielnice
  14. $sort_sql=mysql_query("SELECT * FROM sortownia");
  15. while ($sort_wynik=mysql_fetch_array($sort_sql))
  16. {
  17. $sortownia_id=$sort_wynik['id_sortownia'];
  18. $sortownia_nazwa=$sort_wynik['nazwa_sortownia'];
  19. $formularz1.="<OPTION VALUE=\"$sortownia_id\">$sortownia_nazwa</option>";
  20. $formularz2.="<OPTION VALUE=\"$sortownia_id\">$sortownia_nazwa</option>";
  21. }
  22. $formularz1.="</select>";
  23. $formularz2.="</select>";
  24. $formularz = $formularz1. $formularz2


Abstrahując od tego, że jeszcze lepiej byłoby html zostawić w html i nie pakować go do php. i z tego co teraz widzę to option są identyczne dla obydwóch selectów więc nawet przypisanie do jednej zmiennej by wystarczyło. Ale zostawiam tak jak jest żebyś zobaczył o co konkretnie chodzi
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.