Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP] problem z lista rozwijalna
-Gość-
post
Post #1





Goście







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
Go to the top of the page
+Quote Post
kokers
post
Post #2





Grupa: Zarejestrowani
Postów: 154
Pomógł: 33
Dołączył: 18.10.2010
Skąd: Katowice

Ostrzeżenie: (0%)
-----


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


--------------------
‎"Sometimes you're gonna get odd error syntax, unexpected T_PAAMAYIM_NEKUDOTAYIM and you're like, what in the world is that thing i have no idea what went wrong in my code. In english that error means you screwed up the references to an object" Kevin Skoglund
Drobna prywata: Ależ nie nie, nie zamierzam zmieniać płci w najbliższym czasie, więc zwracanie się do mnie per Pan jest odrobinkę nietrafione.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 19:07