Warning: mysql_fetch_array(): supplied argument is not...

Nathan

Registered
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource...

Това е грешката, която ми излиза най-отдолу след скрипта. Добре, няма проблеми. И преди съм се справял с тази грешка. Проблемът идва с това, че скрипта си върви и ми дава резултатите от базата данни, манипулирам си я както си искам. Общо взето всичко е наред. Само дето това не мога да го махна от страницата си.

<?
session_start();
include("config.php");

$username=$HTTP_SESSION_VARS[username];
$password=$HTTP_SESSION_VARS[password];

$query=mysql_query("SELECT * FROM heroes WHERE hero='$username'");
while($row=mysql_fetch_array($query)) {
$pass=$row["pass"];
$level=$row["level"];
$name=$row["hero"];
$exp=$row["exp"];
$life=$row["life"];
$gender=$row["gender"];
$gold=$row["gold"];
include("levels.php");
?>

Това ми е кода. Подчертаното ми е девети ред, от където твърди че е грешката.
 
Имаш грешка в заявката. Освен това виждам, че кодираш грешно. Първо няма смисъл да правиш while, след като обхождаш само един запис. След това не ползвай $HTTP_SESSION_VARS[username];
Направи го на $useranme = $_SESSION['username'];
Ако не се оправи -> 8 ред го правиш така:
$query=mysql_query("SELECT * FROM heroes WHERE hero='$username'") or die(mysql_error());
 
Не си затворил цикъла.Имаш неправилна заявка.
Извадия с променлива :
$sql_query = 'SELECT * FROM heroes WHERE hero='.$username ;
echo $sql_query ; //


Идеята на упражнението да видиш какво ти генерира , и да го праснеш в phpmyadmin да видиш каква е грешката.
И един съвет ако ползваш двойни кавички, ползвай и къдрави скоби { }


$sql_query = "SELECT * FROM heroes WHERE hero='{$username } ' LIMIT {$num} ";



Така ще обособиш променливите и вероятността да направиш грешка с точки, кавички , запетайки е по-малка.


Ето ти частица как става с { и }
$SQL .=" WHERE `{$where_key}`= '{$where[$where_key]}' LIMIT {$limit}";
 

Back
Горе