Случайное изображение из Б.Д.

slo_nik

Новичок
Случайное изображение из Б.Д.

Помогите, пожалуйста, доработать код для вывода случайного изображения из БД.
Задача в следующем.
Есть сайт - визитка, на нём закладка "фотоальбом", при переходе на эту закладку отображаются все группы фотографий.
Группа 1
Группа 2
Группа 3
и т.д.

Рядом с названием каждой группы предполагается вывод одного изображения в случайном порядке, но так, что бы изображение относилось к конкретной группе.
Вот попытался сделать, но возникла одна проблема.
При выводе случайного изображения, фотографии из "Группа1" попадают в другие группы, при этом фотографии из групп "Группа 2" и "Группа 3" ни когда не подставляюся к "Группа1".
Как можно подправить код, что бы фотографии подставлялить только к своей группе?
Все изображения находятся в одной директории.
PHP:
$obj = new pager_mysql("*","photocat","WHERE `hide` = 'show'","ORDER BY `position`",2,4,"&act=photo");
  $photo = $obj->get_page();
   /* если получены данные */
   if(!empty($photo)){
     for($i = 0; $i < count($photo); $i++){
	          /* формируем путь к директории с фотографиями */
			  $patch = "files/";
	 		 /* получаем изображения согласно id каталога */
		     $query = "SELECT `small` FROM `photo` WHERE `id_catalog` = ".$photo[$i]['id_catalog']." AND `hide` = 'show'";
			  $ran = mysql_query($query);
			   if(!$ran) echo "<p>Ошибка при обращении к таблице фотографий<br>".mysql_error()."</p>";
			    while($ran_ph = mysql_fetch_array($ran)){
				 $image[] = $patch.$ran_ph['small'];
				 }
				 /* получаем случайный индекс из массива */
				  $index = rand(0, count($image) - 1);
	    /* выводим случайный файл */
	     echo "<img src='".$image[$index]."'>";
	    echo $photo[$i]['name']." - ".$photo[$i]['id_catalog']."<br>";  
	 }
   }
 

Adelf

Administrator
Команда форума
$image = array(); сделай в начале цикла.

-~{}~ 20.08.09 18:17:

З.Ы. ВСЕГДА надо обьявлять переменные. Даже когда это и не требуется языком.
 

slo_nik

Новичок
Спасибо, совсем упустил из виду.
Вернее, делал по примеру, там массив не объявлен.
Теперь всё работает.
 
Сверху