Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][SQL] Wyświetlanie jednego wyniku w nieskończoność?
Xayan
post 24.10.2010, 11:11:00
Post #1





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

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


Witam. Mam coś takiego:

  1. while($row = mysql_fetch_assoc(mysql_query('SELECT * FROM gry WHERE type="'.$_GET['type'].'"'))) {
  2. var_dump($row);
  3. }


Zapytanie jest dobrze sformułowane, jednak wypluwa mi strukturę $row w nieskończoność. Dlaczego?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
fr33d0m
post 24.10.2010, 11:57:26
Post #2





Grupa: Zarejestrowani
Postów: 132
Pomógł: 4
Dołączył: 22.10.2010

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


Może tak??
  1. while($row = mysql_fetch_assoc(mysql_query("SELECT * FROM gry WHERE type='".$_GET['type']."' LIMIT 1")))


edit: wybacz, nie zrozumiałem dobrze pytania winksmiley.jpg
chociaż zawsze możesz pominąć while() i zrobić limit do 9999999 - to teoretycznie powinno załatwić Twój problem biggrin.gif hehe

Ten post edytował fr33d0m 24.10.2010, 12:36:50


--------------------
UWAGA! Stwierdzono naruszenie paragrafu §33 ustawy ACTA. Podpis użytkownika został usunięty.
Go to the top of the page
+Quote Post
Xayan
post 24.10.2010, 12:21:32
Post #3





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

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


Posiadając jeden rekord nie trzeba się bawić z pętlą. Ja chcę wyświetlić wiele rekordów.

@Edit:

Hm... zauważyłem coś bardzo dziwnego.

  1. var_dump(mysql_fetch_assoc(mysql_query('SELECT screen FROM gry')));


Cytat
Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\java.php on line 40


Istnieje kolumna screen, zapytanie powinno zwracać 3 rekordy...

Ten post edytował Xayan 24.10.2010, 12:36:36
Go to the top of the page
+Quote Post
krowal
post 24.10.2010, 14:30:57
Post #4





Grupa: Zarejestrowani
Postów: 561
Pomógł: 72
Dołączył: 15.11.2006

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


Tak jak masz teraz to się nie dziwię że pętla wywołuje się w nieskończoność bo ($row = mysql...) zawsze zwróci true i while będzie krążył dopóki nie dostanie false.
Powinno być tak:
  1. $rs = mysql_query('SELECT * FROM gry WHERE type="'.$_GET['type'].'"');
  2. while($row = mysql_fetch_assoc($rs)) {
  3. var_dump($row);
  4. }


--------------------
Nawet świnka może wejść na drzewo kiedy jest chwalona :)
Go to the top of the page
+Quote Post
bmL
post 24.10.2010, 22:47:19
Post #5





Grupa: Zarejestrowani
Postów: 301
Pomógł: 25
Dołączył: 15.07.2007
Skąd: Olsztyn

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


Gwoli ścisłości "$row = mysql." nie zwraca true tylko zawartość $row, w tym przypadku tablicę asocjacyjną.
A skrypt się zapętla ponieważ za każdym razem zapytanie jest wykonywane od nowa no i zwracany będzie 1 rekord. Dla tego trzeba to zrobić tak jak napisał krowal.


--------------------
Tutaj miał być jakiś mądry tekst. Miał być... No ale jest głupi tekst.
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: 14.08.2025 - 03:45