Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Базы Данных > Случайные записи MySQL


Автор: maxkap 31.7.2009, 11:19
В общем, проблема такова.

Пишу всем до боли известную игру "города".

Есть таблица городов 
id    name
1     Киев
2     Минск
..............
Юзер ввел слово, далее ходит программа.
Выбираем из базы записи начинающиеся на $LastSymbol

Код

$res = DBQuery($db,"SELECT * FROM city WHERE name LIKE '".$LastSymbol."%%"."'");


Таким образом получаю кучю записей, из которых нужно выбрать 1 случайную.
id получаем совершенно разнообразные.

В начале хотел весь полученный результат заносить в отдельную временную таблицу, нумеровать от 0 до mysql_num_rows
и выбирать  rand(0 , mysql_num_rows);

Долго и накладно..........

Потом решил просто брать случайное число от 0 до mysql_num_rows и идти циклом по полученным записям до этого случ.числа.

Но это тоже неприятно.

Мож есть какой то есть способ попроще решить этот вопрос?


Автор: azesmcar 31.7.2009, 11:32
http://akinas.com/pages/en/blog/mysql_random_row/

Автор: maxkap 31.7.2009, 11:52
а на русском нет?
не все че то я понял

Добавлено через 4 минуты и 9 секунд
ну примерно то понятно.
Но беда в том, что могут быть выбраны записи с id , например 13, 54, 67, 77, 78, 90......
то есть не последовательно, как тут быть, не знаю......

Автор: azesmcar 31.7.2009, 12:01
Цитата(maxkap @  31.7.2009,  11:52 Найти цитируемый пост)
а на русском нет?
не все че то я понял

Что именно непонятно? несколько методов и их сравнения. Методы написаны на PHP/MySQL - результаты сравнения на арабском (в цифрах).

Цитата(maxkap @  31.7.2009,  11:52 Найти цитируемый пост)
Но беда в том, что могут быть выбраны записи с id , например 13, 54, 67, 77, 78, 90......
то есть не последовательно, как тут быть, не знаю...... 

не понял в чем проблема. У тебя есть запрос, надо выбрать 1, случайную строку..выбирай, причем тут последовательность id?

Автор: Ипатьев 31.7.2009, 12:04
Я думаю, автора устроит даже самый первый вариант, учитывая поиск по LIKE...

maxkap, SQL запрос тебе тоже надо, чтобы был по-русски?

Автор: maxkap 31.7.2009, 13:04
Ипатьев, не стоит умничать. Дома с мамой на кухне будешь умничать.

Мне не надо, чтоб запрос был на русском, я хотел небольшого разъяснения.
Меня устроил 1-й вариант.
Спасибо за оказанную помощь. Тема закрыта.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)