Xwab
Форумыnavigate_nextОбщие вопросы

как выбрать несколько случайных строк с mysql?
Сообщения
abn

вобщем так.

нужно каким то образом выводить случайно 3 строки с бд.
не знаю как сделать.


ну либо помогите с этим:

$nums = range(1, 100);
shuffle($nums);
for ($i = 1; $i < 3; $i++) {
echo $nums[$i] . "<br />";
}
нужно как то вывести значение один два и три.

15 Авг 2012, 17:34
IceJOKER

ORDER BY RAND() LIMIT 3

и спросил не там, есть специальная тема

15 Авг 2012, 17:46
MeseaSiS

http://www.php.net/manual/ru/function.mt-rand.php

15 Авг 2012, 17:50
abn

#2
знаю я этот код, он не хорош!
может занят весь кеш на хостинге!

#3
ответ я там не нашел.


__________
посл.ред. 15 Авг 2012, 17:53; всего 1 раз 15 Авг 2012, 17:50
MeseaSiS

abn, ты про 2й пост? О_о

15 Авг 2012, 17:51
abn

http://akinas.com/pages/en/blog/mysql_random_row/

Solution 1 [SQL]
SELECT * FROM `table` ORDER BY RAND() LIMIT 0,1;

The problem with this method is that it is very slow. The reason for it being so slow is that MySQL creates a temporary table with all the result rows and assigns each one of them a random sorting index. The results are then sorted and returned.

15 Авг 2012, 17:55
MeseaSiS

abn, кэш на то и кэш, что очищается...
юзай 3й пост


<?php
$id = mt_rand (1,3);
?>

15 Авг 2012, 17:57
abn

как мне мать
3 случайные числа
$n1 = xx;
$n2 = xx;
$n3 = xx;
c
$nums = range(1, 100);
shuffle($nums);
for ($i = 1; $i < 3; $i++) {
echo $nums[$i] . "<br />";
}

15 Авг 2012, 18:04
Маньяк

abn, [php:1:12178faf79]<?
$count = $db->query('SELECT COUNT(*) FROM `table`')->fetchColumn();
for($i=3; $i<=1; $i--)
{

if($i>$count)
continue;
$query = $db->query('SELECT * FROM `table` LIMIT '.rand(0, $count).', 1')->fetch();
var_dump($query);
}
?>[/php:1:12178faf79]


__________
посл.ред. 15 Авг 2012, 18:29; всего 1 раз 15 Авг 2012, 18:19
abn

Маньяк это же три запроса к бд!

может можешь ответить на 8-й пост?

если бы мог мать три чиста и мог вставить в

$rand_questions = @mysql_query("SELECT * FROM `vote_questions` $sql_lang AND (`question_id`='$rand[0]' OR `question_id`='$rand[1]' OR `question_id`='$rand[2]')", $votes_db);

15 Авг 2012, 18:25
Ответить на тему