Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Случайный вывод. Функция RAND()
 
 автор: ols   (28.08.2008 в 22:35)   письмо автору
 
 

SELECT id FROM platforms ORDER BY RAND() LIMIT 1

Постоянно выводит 3-4 одних и тех значения. Уже несколько раз пробовал. В базе 20 записей.
Просто удивительно что постоянно выводит 15, 16, 17,18. Может они кешируется, или что-то еще? Может нужно как-то по-другому запрос составлять.

  Ответить  
 
 автор: Root   (28.08.2008 в 22:47)   письмо автору
 
   для: ols   (28.08.2008 в 22:35)
 

как вы пробуете?

  Ответить  
 
 автор: ols   (28.08.2008 в 22:55)   письмо автору
 
   для: Root   (28.08.2008 в 22:47)
 

>как вы пробуете?

Захожу в phpMyAdmin и выполняю SQL-запрос
SELECT id FROM platforms ORDER BY RAND() LIMIT 1


Если же при помощи скрипта, пробовал такой вариант

<?
$sql 
mysql_query("SELECT id FROM platforms ORDER BY RAND() LIMIT 1");
if(
$sql)
{
    while (
$res mysql_fetch_array($sql))
    {
        echo 
$res['id'];

    }
}
else echo 
mysql_error();
?>

  Ответить  
 
 автор: Root   (28.08.2008 в 23:14)   письмо автору
 
   для: ols   (28.08.2008 в 22:55)
 

зачем while если LIMIT 1?
id auto_increment?
а так? :-)
<?php
for($i=1$i<20$i++)
{
    echo 
mysql_result(mysql_query('SELECT id FROM platforms ORDER BY RAND() LIMIT 1'), 0) . '<br />';
}
?>

  Ответить  
 
 автор: ols   (28.08.2008 в 23:24)   письмо автору
 
   для: Root   (28.08.2008 в 23:14)
 

>зачем while если LIMIT 1?
>id auto_increment?
Действительно сглупил))
>а так? :-)
>
<?php
>for($i=1$i<20$i++)
>{
>    echo 
mysql_result(mysql_query('SELECT id FROM platforms ORDER BY RAND() LIMIT 1'), 0) . '<br />';
>}
>
?>

Результат выполения скрипта вывел:

16
16
15
18
15
17
17
16
16
16
15
18
18
15
15
16
17
17
16

И все, дальше он эти числа и регенерирует, других болше не выводит.

  Ответить  
 
 автор: Root   (28.08.2008 в 23:26)   письмо автору
 
   для: ols   (28.08.2008 в 23:24)
 

у вас id точно все разные?

  Ответить  
 
 автор: ols   (28.08.2008 в 23:31)   письмо автору
 
   для: Root   (28.08.2008 в 23:26)
 

>у вас id точно все разные?
Спасибо что задали такой вопрос)))))) Проблема решена, спасиба большое!

  Ответить  
 
 автор: Root   (28.08.2008 в 23:37)   письмо автору
 
   для: ols   (28.08.2008 в 23:31)
 

:-)

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования