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

Форум MySQL

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

 

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

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

тема: Случайный вывод содержимого из БД на страницу
 
 автор: Kaje   (23.07.2009 в 20:36)   письмо автору
 
 

Ситуация такая :
Есть некая страница на которой пользователи сайта могут голосовать за работы других пользователей. Необходимо выводить на страницу оценивания работу, взятую из базы случайным порядком. Пробывал использовать $rand_id = rand (1, $max_id); где $max_id числовой идентификатор самой последней загруженной работы. И таким образом выводить из базы случайные работы. Вроди за работало, но возникла проблема. Когда пользователи удаляют работы из базы то id этих работ тоже тю-тю.
Вот вопросы:
- Как зделать так чтобы выводились только те работы которые существуют?
- Может кто подскажет более разумный способ вывода из базы в случайном порядке и желательно с минимальной повторяемостью.

Хотелось бы получить в результате чтото вроди этого : http://my.mail.ru/cgi-bin/my/photo_for_vote

Заранее спасибо!

  Ответить  
 
 автор: Mirage   (23.07.2009 в 21:00)   письмо автору
 
   для: Kaje   (23.07.2009 в 20:36)
 

$query="SELECT * FROM photo";
$res=mysql_query($query);
$rand_id=rand(0,mysql_num_rows($res)-1);
echo "<img src=images/".mysql_result($res,$rand_id,'photo_img').">";

  Ответить  
 
 автор: Trianon   (23.07.2009 в 21:03)   письмо автору
 
   для: Mirage   (23.07.2009 в 21:00)
 

В MySQL для этого есть ORDER BY RAND() .

  Ответить  
 
 автор: Mirage   (23.07.2009 в 21:13)   письмо автору
 
   для: Trianon   (23.07.2009 в 21:03)
 

Блин начал придумывать "велосипед"... Поторопился, забыл про ORDER BY RAND() ... :(

  Ответить  
 
 автор: Valick   (23.07.2009 в 21:05)   письмо автору
 
   для: Mirage   (23.07.2009 в 21:00)
 

$query="SELECT * FROM photo ORDER BY RAND() LIMIT 1";

  Ответить  
 
 автор: Trianon   (23.07.2009 в 21:20)   письмо автору
 
   для: Valick   (23.07.2009 в 21:05)
 

LIMIT 1 зачем?
человеку явно их нужно несколько.

  Ответить  
 
 автор: Mirage   (23.07.2009 в 21:25)   письмо автору
 
   для: Trianon   (23.07.2009 в 21:20)
 

Ну если он хочет как на странице http://my.mail.ru/cgi-bin/my/photo_for_vote
То ему скорее всего нужна одна фотка.

  Ответить  
 
 автор: Valick   (23.07.2009 в 21:40)   письмо автору
 
   для: Trianon   (23.07.2009 в 21:20)
 

оценивания работу, взятую из базы случайным порядком
вроде единственное число, а там пусть берёт сколько хочет

  Ответить  
 
 автор: Kaje   (23.07.2009 в 21:27)   письмо автору
 
   для: Valick   (23.07.2009 в 21:05)
 

Благодарю за помощь. За этот случайный вывод я даже и не догадывался. Оператывно сработали ХлоПцы.

  Ответить  
 
 автор: Valick   (23.07.2009 в 21:42)   письмо автору
 
   для: Kaje   (23.07.2009 в 21:27)
 

много чего можно сделать средствами СУБД

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

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