Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Mysql_fetch_assoc error
Forum PHP.pl > Forum > Przedszkole
Komarek
Bardzo prosze o pomoc poniewaz nie wiem czemu to nie dziala :/
  1. $wynik = mysql_query("SELECT * FROM amx_bans WHERE player_id=".$_GET['id']." ORDER BY ban_created DESC");
  2. while( $row = mysql_fetch_assoc($wynik))
  3. {
  4. $date = $row['ban_created'];
  5. $player = $row['player_nick'];
  6. $player_id = $row['player_id'];
  7. $duration = $row['ban_length'];
  8. $reason = $row['ban_reason'];
  9. $admin = $row['admin_nick'];
  10.  
  11. if(empty($duration))
  12. {
  13. $duration = "Na zawsze";
  14. }
  15. else
  16. {
  17. $duration = $duration." minut";
  18. }
  19.  
  20.  
  21. echo "<tr>
  22. <td>".$date."</td>
  23. <td>".$player."</td>
  24. <td>".$player_id."</td>
  25. <td>".$duration."</td>
  26. <td>".$reason."</td>
  27. <td>".$admin."</td>
  28. </tr>";
  29. }


blad jest dziwny o_O

Kod
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in (...)/www.php on line 16


Linijka 16 to ta w ktorej uzylem funkcji mysql_fetch_assoc.
tehaha
sprawdź czy nie błędu w zapytaniu po zrób:
pauluZ
Eee tam ....
Kiepski post.
Dużo niepotrzebnego wklejonego kodu (błee), linijka 16 to nie ta która jest w kodzie w poście ....
Sam kod także nieciekawy bo bardzo łatwo podatny na SQL injection.

Komunikat błędu mówi sam za siebie: zmienna $wynik nie jest wynikiem z bazy danych.
Masz kłopoty z połączeniem z bazą albo może masz źle zbudowane zapytanie SQL....

Odpal zapytanie w phpMyAdmin i zobacz co dostajesz...
sprawdz także sobie: var_dump($wynik);

pokombinuj przynajmniej przez pare minut ......
Albo napisz co już sprawdziłeś .....
Komarek
@pauluZ: twoja odpowiedz raczej nic nie wnosi do tematu.
Pisze dlatego ze juz nie wiem co jest nie tak, a nie ze mam jakis problem to pisze nawet nie sprawdzajac co to za blad.

@topic:
po dodaniu or die(...
blad:
Kod
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
tehaha
spróbuj tak:
  1. $wynik = mysql_query("SELECT * FROM amx_bans WHERE player_id='".$_GET['id']."' ORDER BY ban_created DESC");
Komarek
problem rozwiazany.
blad byl w
Kod
player_id=".$_GET['id']."

zapomnialem ze player_id to jest nazwa a nie id tongue.gif
brakowalo znakow '
t/c

//edit:
dzieki tehaha leci pomogl ale i tak sam rozwiazalem biggrin.gif
Wicepsik
Cytat(Komarek @ 20.06.2010, 15:08:48 ) *
@pauluZ: twoja odpowiedz raczej nic nie wnosi do tematu.
Pisze dlatego ze juz nie wiem co jest nie tak, a nie ze mam jakis problem to pisze nawet nie sprawdzajac co to za blad.

Moim zdaniem jego post dużo wnosi do tematu. Im szybciej nauczysz się zabezpieczyć kod podatny na sql injection tym lepiej. Za parę tygodni przyjdziesz z tematem " Ktoś mi skasował bazę danych! Tylko ja miałem dostęp do niej! "
pauluZ
Dzięki @Wicepsik za poparcie.
W moim przekonaniu odpowiedziałem dając interpretację błędu oraz pisząc z trzy wskazówki co można zrobić lub sprawdzić.
Kolega @Komarek pewnie zafixował się na mojej drugiej linijce: "Kiepski post." i odpisał pod chwilowym wpływem emocji:)


Kolejna sugestia (kontynuując myśl @Wicepsika i jeśli autor pierwszego postu godzi się na konstruktywną pomoc z mojej strony) to:
proponuję wykonać nawet prostą analizę $_GET['id'] pod kątem zawartości
- np. wykluczyć występowanie spacji lub średników, etc.
- lub testować długość i tym podobne przygotowanie zmiennej do zapytania.

PS. Cały czas polecam phpMyAdmina do testów zapytań w krytycznych momentach pracy z kodem SQL smile.gif
Komarek
napisalem chyba wyraznie wczesniej ze problem zostal rozwiazany wiec znowu spamujecie ...
polecam google do sprawdzenia co znaczy t/c.

//edit:
co do waszych postow to nie mam obowiazku wklejania calego kodu jak rowniez to jest tylko przyklad.
dziekuje za uwage
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.