Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]dlaczego moje "while" działa tylko raz?
r--x
post 18.08.2010, 15:32:10
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 18.08.2010

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


Wiem, że gdyby był tutaj dział "żłobek" to powinienem w nim zadać to pytanie smile.gif
Stawiam pierwsze kroki w php i mysql więc proszę o wybaczenie, że nawet nie mam pojęcia
jak zadać pytanie wyszukiwarce (chodzi o treść pytania oczywiście), jedynym wyjściem jest napisanie tego postu.

mam mój pierwszy kod:

  1. <?PHP
  2. /* łączenie z bazą */
  3. $link = mysql_connect("localhost","user","password");
  4. mysql_select_db("dbname");
  5.  
  6. /* zapytania do bazy w tabeli "users" */
  7. $query = 'SELECT * FROM users';
  8. $results = mysql_query($query);
  9.  
  10. /* komunikat w razie błędów */
  11.  
  12. /* tworzenie XMLa */
  13. echo "<?xml version=\"1.0\"?>\n";
  14.  
  15. echo "<users>\n";
  16. while($line = mysql_fetch_array($results)) {
  17. echo "<username>" . $line["username"] . "</username>\n";
  18. }
  19. echo "<users>\n";
  20.  
  21. echo "<levels>\n";
  22. while($line = mysql_fetch_array($results)) {
  23. echo "<level>" . $line["level"] . "</level>\n";
  24. }
  25. echo "<levels>\n";
  26.  
  27. /* zamykanie połączenia z bazą */
  28. mysql_close($link);
  29.  
  30. ?>


W tym kodzie działa tylko pierwsze "while" dotyczące pola "username" w tabeli "users".
drugie "while" z pola "level" nie tworzy mi linii z zawartością.

Jeśli w pierwszym while zmienię "username" na "level" to działa, bo w bazie istnieje to pole...

Proszę niekoniecznie o konkretne wskazanie błędu jaki popełniam, może być naprowadzenie mnie gdzie i czego szukać!

P.S.
Dlaczego po zarejestrowaniu wszystkie treści na tym forum mam wycentrowanequestionmark.gif
Da się to jakoś zmienić?
Go to the top of the page
+Quote Post
everth
post 18.08.2010, 15:43:39
Post #2





Grupa: Zarejestrowani
Postów: 782
Pomógł: 153
Dołączył: 21.07.2010

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


Bo robisz drugą pętlę na już przetworzonym wyniku. Wstaw pomiędzy pierwszym a drugim while
  1. @mysql_data_seek ($results, 0);


--------------------
Już mi się ani wiedzieć, ani tym bardziej myśleć nie chce.
[Think different]!
Go to the top of the page
+Quote Post
r--x
post 18.08.2010, 15:46:48
Post #3





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 18.08.2010

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


Nigdy bym na to nie wpadł, dziękuję stukrotnie, oczywiście działa smile.gif

Edit:
Czy jeśli przy tworzeniu XMLa musiałbym używać pętli kilkaset razy to
za każdym razem muszę stosować

@mysql_data_seek ($results, 0);

czy jest może lepsze wyjście?

P.S.
Czy ktoś wie, co zrobić z tym zcentrowanym tekstem? Wszystko jest skrajnie nieczytelne...
Zaznaczam, że KAŻDE inne forum działa bez zarzutu...
Mam Firefox 3.6.8...

Ten post edytował r--x 18.08.2010, 16:01:52
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 Wersja Lo-Fi Aktualny czas: 19.07.2025 - 19:40