SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 07.12.2011 01:56:51

vladyka
Участник
Зарегистрирован: 07.12.2011
Сообщений: 3

Случайная запись из таблицы

Здравствуйте! У меня такая-вот ситуация: есть некая БД links, в которой хранятся ссылки друзей сайта. Хочется, чтобы эти ссылки выводились на странице в случайном порядке по 5 штук.
______________________
id |    title   |      url      |
-------------------------
1 |   xxx     |    site.ru   |
--------------------------
2 |   yyy    |   site2.ru   |
-------------------------
5 |   zzz     |   site3.ru   |
--------------------------
Каким образом можно это сделать? Кроме id, title, url  есть ещё поля, я привёл только те, которые нужны.Ид - для выборки (возможно), а остальные для формирования ссылки.

Неактивен

 

#2 07.12.2011 02:56:52

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Случайная запись из таблицы

order by rand() limit 5 - если в таблице не очень много записей.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#3 07.12.2011 16:41:08

vladyka
Участник
Зарегистрирован: 07.12.2011
Сообщений: 3

Re: Случайная запись из таблицы

deadka написал:

order by rand() limit 5 - если в таблице не очень много записей.

Спасибо, я в принципе, так и сделал:

$q = mysql_query('SELECT * FROM `table_links` ORDER BY rand() LIMIT 10');
 $r = mysql_fetch_row($q);
 echo "<a href='$r[4]'>$r[3]</a><br />";


Я решил брать 10 ссылок. В третьей строке формируется, собственно ссылка из полученых данных. Вот только одного не могу понять: почему выводится только одна ссылка. Записей в БД сейчас мало (~10). При любом значении LIMIT выводится всего одна запись. Подскажите, плиз, как исправить? Может я чё неправильно сделал?

Неактивен

 

#4 07.12.2011 16:47:12

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Случайная запись из таблицы

Так Вы вытаскиваете одну запись из набора, который вернул MySQL.
А нужно вытаскивать до тех пор, пока в наборе еще что-то есть.

while ($row = mysql_fetch_array($q, MYSQL_NUM)) {
    printf("ID: %s  Имя: %s", $row[0], $row[1]);
}

Отредактированно deadka (07.12.2011 16:47:43)


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#5 07.12.2011 22:34:01

vladyka
Участник
Зарегистрирован: 07.12.2011
Сообщений: 3

Re: Случайная запись из таблицы

О, спасибо огромное, разобрался!))

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson