Wątek przeniesiony 2015-09-23 16:31 z PHP przez dzek69.

Błąd w linijce - mysql_fetch_array()

0

Dzień dobry!
Mam problem ze zrozumieniem błędu, który powoduje to, że skrypt po prostu nie działa. Błąd który wyskakuje to

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /loadr.php on line 7

Linia kodu od 1 do 10 to:

 <?php
@include_once('set.php');
$gamenum = fetchinfo("value","info","name","current_game")-1;
        $rs = mysql_query("SELECT * FROM `game".$gamenum."` GROUP BY `userid`");
        $i = 0;
        $crd = "";
        while($row = mysql_fetch_array($rs)) {
                $crd .= "avatar.push('" . $row['avatar'] . "');";
                $i++;
        }

Jak to naprawić? Bardzo proszę także o krótkie wytłumaczenie. Pozdrawiam!

0

Po pierwsze: http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php, alternatywa mysqli albo lepiej PDO.
Co do problemu - sprawdź czy zmienna rs nie jest false zanim ją użyjesz w mysql_fetch_array.

0

Niestety nie jestem nawet początkujący z PHP, więc potrzebuję dodatkowego "poprowadzenia za rączkę".

 $rs = mysql_query("SELECT * FROM `game".$gamenum."` GROUP BY `userid`");

Czyli wybiera wszystko z tabeli gamenum (w mysql jest game1, zgaduję, że to to) i grupuje wg userid. Jednak nie wiem gdzie sprawdzić czy zmienna rs nie jest false. Muszę jej poszukać w innych plikach, tak?

0

Po pierwsze tak - daj sobie po mysql_query - or die(mysql_error());

mysql_query("SELECT * FROM `game".$gamenum."` GROUP BY `userid`") or die(mysql_error());

Po drugie - możesz sobie wyprintować całe query i wkleić do takiego phpMyAdmina:

mysql_query($query="SELECT * FROM `game".$gamenum."` GROUP BY `userid`");
die($query);

1 użytkowników online, w tym zalogowanych: 0, gości: 1