2016-04-20 2 views
-3

вот мой кодЧто случилось с моим кодом? Ранг оценка MySQL, PHP

$sql="SET @rank=0; SELECT * FROM (SELECT *, @rank:[email protected]+1 AS Rank FROM scoregame where userid=33 order by score DESC) AS t"; 
$query=mysql_query($sql); 
if(mysql_num_rows($query) != "") 
{ 
    $stt=1; 
    while($row=mysql_fetch_array($query)) 
    { 
    $stt++; 
    echo $row['score']; 
    } 
} 

но что-то не так:

Warning: mysql_num_rows() expects parameter 1 to be resource 

Спасибо так много!

+1

Возможные дубликата [MySQL \ _fetch \ _array()/MySQL \ _fetch \ _assoc()/MySQL \ _fetch \ _row() ожидает параметр 1, чтобы быть ресурсом или MySQLi \ _result, boolean given] (http://stackoverflow.com/questions/2973202/mysql-fetch-array-mysql-fetch-assoc-mysql-fetch-row-expects-parameter-1-to) – Epodax

+0

mysql_query возвращает логическое значение вместо ресурса лучше проверить с помощью [mysql_error] (http://php.net/manual/en/function.mysql-error.php) – Pietro

ответ

1

Вы пытаетесь запустить сразу два запроса. Это не работает с этой функцией PHP. Но вы можете уменьшить его до одного запроса

SELECT *, @rank:[email protected]+1 AS Rank 
FROM scoregame 
cross join (select @rank := 0) r 
where userid=33 
order by score DESC 
+0

Да, это сработало отлично: D большое вам спасибо;) –

Смежные вопросы