mysql_fetch_row и ORDER BY - что я делаю не так? - PullRequest
0 голосов
/ 27 января 2012

Извините за смутный заголовок, но я пытался закрепить это уже неделю и у меня кончились идеи.

Таблица: имя: scores

 id name    password    intuition   
 (int, varchar, varchar, int)
 (5 rows with made-up values)

PHP:

$userResult = mysql_query("SELECT `intuition` FROM `scores` ORDER BY `intuition` DESC LIMIT 4,1");      
if($userResult ==NULL)
{   die(mysql_error());
}else
{   if($userResult ==FALSE)
    {   die("ranking query failed, sorry");
        }else
        {   if(mysql_num_rows($userResult) ==NULL)  
                {   die("No ranking results found.");       
            }else
            {   $queryRow   = mysql_fetch_row($userResult);
                $topIntuition   = $query_row['intuition'];
                die("queryRow =$queryRow;  topIntuition =$topIntuition");
        }
        }
}   

Выход:

query row =Array; topIntuition =

где topIntuition должен быть пятым по величине результатом, в настоящее время - целое число 2. Что я делаю не так?

РЕДАКТИРОВАТЬ: $query_row[<name of row>] не работает, но $query_row[0] работает.

1 Ответ

3 голосов
/ 27 января 2012

LIMIT 4, 1 вернет пятый по величине результат (так как LIMIT 0, 1 вернет первый).

Независимо от того, mysql_fetch_row возвращает массив с числовыми ключами - попробуйте $ queryRow [0];

Кроме того, вы можете переключиться на mysql_fetch_array или mysql_fetch_assoc.

...