MySQL возвращает только первую строку результата

Программирование, которое не связано с API.
Ответить
scarm
Сообщения: 7
Зарегистрирован: 18 фев 2010, 12:40

MySQL возвращает только первую строку результата

Сообщение scarm »

В таблице хранятся результаты игры в колонках user_id и game_score.
Запросом из php файла необходимо получить массив состоящий из игроков + рекорд по списку из нескольких игроков.
Запрос в базу идет следующим видом:
SELECT user_id, game_score FROM base.score_info WHERE id='user1' OR id='user2' OR id='user3' OR id='user4' OR id='user5'
Когда этот запрос я делаю через php_myadmin, то четко возвращается табличка из значений игроков+рекордов,
но когда тот же самый запрос идет посредством php, то возвращается только первая строка результата, т.е. user1 - score1
Вот код, который я использую:

Код: Выделить всё

$sql_query  = "SELECT user_id, game_score FROM $base.$table WHERE id=$friends_request";     //проверял echo, получалось://SELECT user_id, game_score FROM base.score_info WHERE id='user1' OR id='user2' OR id='user3' OR id='user4' OR id='user5'$response= mysql_query($sql_query, $link);$mas = mysql_fetch_array($response); 
Подскажите, куда копать, потому что делать по запросу на каждого игрока больно жирно, так никакого сервера не хватит, а получить
рекорды очень надо.
Заранее спасибо.
scarm
Сообщения: 7
Зарегистрирован: 18 фев 2010, 12:40

Re: MySQL возвращает только первую строку результата

Сообщение scarm »

UPD: все, сам нашел косяк, я получал только первую строку, надо примерно так:

Код: Выделить всё

$sql_query  = "SELECT user_id, game_score FROM $base.$table WHERE id=$friends_request";if($query = mysql_query($sql_query, $link)) // Если запрос прошел успешно{while($result = mysql_fetch_array($query)) // Для каждой из вернувшихся строк (в нашем случае предположительно одна){echo "\n";foreach ($result as $r) {echo $r." | ";} // Выводим элементы возвращенной строки, разделяя из вертикальной чертойecho "\n";}}
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: MySQL возвращает только первую строку результата

Сообщение Александр »

Есть необходимость выводить именно так?

Код: Выделить всё

foreach ($result as $r) {echo $r." | ";}
можно просто

Код: Выделить всё

echo $result['user_id'].' '.$result['game_score '];
Ответить