Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.05.2011, 11:13   #1
Che Guevara
Пользователь
 
Аватар для Che Guevara
 
Регистрация: 27.07.2010
Сообщений: 91
По умолчанию выборка случайных записей

Здрасьте!
Хочу сделать запрос к базе мускуль на вывод случайных записей (id):
PHP код:
<?php
$db
=mysql_connect("localhost""user""root");
mysql_select_db("baza",$db);
$query="SELECT id FROM offers";
$result=mysql_query($query,$db);
$myrow=mysql_fetch_array($result);
$rand=array_rand($myrow);
echo 
$rand."<br>";
?>
По идее, из всех записей должны выводится случайные, но почему-то пхп пишет совсем не то что надо (имя столбца и т.д.). Как это реализовать?
Che Guevara вне форума Ответить с цитированием
Старый 12.05.2011, 12:15   #2
ssdm
Форумчанин
 
Регистрация: 20.05.2009
Сообщений: 506
По умолчанию

Потому что mysql_fetch_array() - возвращает массив столбцов строки, а не массив записей выборки.
Попробуйте вместо
Цитата:
$query="SELECT id FROM offers";
это
Цитата:
$query="SELECT id FROM offers ORDER by RAND()";
ssdm вне форума Ответить с цитированием
Старый 12.05.2011, 12:25   #3
graymaster
Форумчанин
 
Аватар для graymaster
 
Регистрация: 03.05.2011
Сообщений: 158
По умолчанию

В данном случае (в случае ТС) - выводиться будут не случайные, а в случайном порядке. Это всё же кое-что другое. Мне как-то нажно было нечто подобное, пришлось извращаться - добавлять дополнительное поле - int(4), заполнять его рандомом, а при выборке (надо выбрать случайных 50 из Эн имеющихся), добавлять его в ORDER последним, с битвайзным XOR с ещё одиним рэндомом. Да, там есть ещё ORDER для сортировки по возрастанию другого параметра - параметр может быть (и есть) одинаковым, рандомизацию нужно делать внутри этой выборки. Если кто знает более прямой способ, буду рад.

ЗЫ для ТС:
эхом массив не вывести просто так. Используйте эхо сериалайз, вардамп или выводите каждое интересующее поле через эхо отдельно.
graymaster вне форума Ответить с цитированием
Старый 12.05.2011, 12:33   #4
ssdm
Форумчанин
 
Регистрация: 20.05.2009
Сообщений: 506
По умолчанию

Цитата:
В данном случае (в случае ТС) - выводиться будут не случайные, а в случайном порядке. Это всё же кое-что другое. Мне как-то нажно было нечто подобное, пришлось извращаться - добавлять дополнительное поле - int(4), заполнять его рандомом, а при выборке (надо выбрать случайных 50 из Эн имеющихся), добавлять его в ORDER последним, с битвайзным XOR с ещё одиним рэндомом. Да, там есть ещё ORDER для сортировки по возрастанию другого параметра - параметр может быть (и есть) одинаковым, рандомизацию нужно делать внутри этой выборки. Если кто знает более прямой способ, буду рад.
Ужос!.

Если надо выбрать одну рандомную запись , то -
Цитата:
$query="SELECT id FROM offers ORDER by RAND() LIMIT 1";
ssdm вне форума Ответить с цитированием
Старый 13.05.2011, 08:27   #5
Che Guevara
Пользователь
 
Аватар для Che Guevara
 
Регистрация: 27.07.2010
Сообщений: 91
По умолчанию

PHP код:
<?php
$db
=mysql_connect("localhost""user""root");
mysql_select_db("kvadrat",$db);
for(
$i=0;$i<=20;$i++)
{
$query="SELECT id FROM offers ORDER by RAND() LIMIT 1"
$result=mysql_query($query,$db);
$myrow=mysql_fetch_array($result);
echo 
$myrow['id']."<br>";
}
?>
Спасибо всем - сделал так и работает! :-)
Che Guevara вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выборка по очереди записей из базы данных mulatoschka1990 Помощь студентам 3 18.03.2010 16:31
Выборка случайных записей Dun Microsoft Office Access 1 12.02.2010 10:40
Выборка записей в промежутке нескольких минут ssdm SQL, базы данных 4 29.01.2010 15:47
Firebird. Выборка записей. Вопрос про DBGridEh. artemavd БД в Delphi 14 17.10.2009 12:09
выборка случайных чисел furstenberg Общие вопросы Delphi 2 13.01.2008 21:07