Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Случайные записи MySQL, нужно выбрать случайное поле таблицы 
V
    Опции темы
maxkap
Дата 31.7.2009, 11:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 7.2.2007
Где: Луганская обл.

Репутация: -1
Всего: -1



В общем, проблема такова.

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

Есть таблица городов 
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 и идти циклом по полученным записям до этого случ.числа.

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

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


PM MAIL   Вверх
azesmcar
Дата 31.7.2009, 11:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 1
Всего: 211



PM   Вверх
maxkap
Дата 31.7.2009, 11:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 7.2.2007
Где: Луганская обл.

Репутация: -1
Всего: -1



а на русском нет?
не все че то я понял

Добавлено через 4 минуты и 9 секунд
ну примерно то понятно.
Но беда в том, что могут быть выбраны записи с id , например 13, 54, 67, 77, 78, 90......
то есть не последовательно, как тут быть, не знаю......
PM MAIL   Вверх
azesmcar
Дата 31.7.2009, 12:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 1
Всего: 211



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

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

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

не понял в чем проблема. У тебя есть запрос, надо выбрать 1, случайную строку..выбирай, причем тут последовательность id?
PM   Вверх
Ипатьев
Дата 31.7.2009, 12:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 3
Всего: 37



Я думаю, автора устроит даже самый первый вариант, учитывая поиск по LIKE...

maxkap, SQL запрос тебе тоже надо, чтобы был по-русски?
PM MAIL   Вверх
maxkap
Дата 31.7.2009, 13:04 (ссылка)    | (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 7.2.2007
Где: Луганская обл.

Репутация: -1
Всего: -1



Ипатьев, не стоит умничать. Дома с мамой на кухне будешь умничать.

Мне не надо, чтоб запрос был на русском, я хотел небольшого разъяснения.
Меня устроил 1-й вариант.
Спасибо за оказанную помощь. Тема закрыта.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.0935 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.