пишу свой фотоальбом на подобие вконтактовского. Проблема следующая когда просматриваешь по одной фотографии (тоесть каждая предыдущая является ссылкой на следующую) и доходишь до конца альбома тоесть когда например айди нынешней фотографии 15, а фотографий всего 15, вот в чем вопрос: Как организовать
скрипт так чтобы например в альбоме 15 фотографий и когда мы доходим до 15 и жмем на нее нас перекидывало бы на первую фотку?
P.S. фотоальбом у меня реализован при помощи баз данных тоесть в базе хранятся ссылки и айди, зная предыдущий айди, берем следующий и извлекаем оттуда ссылку
Спустя 12 минут, 4 секунды (29.08.2009 - 18:51) ИНСИ написал(а):
luncher можно подробнее =)) код выложи хоть =))
Спустя 14 минут, 53 секунды (29.08.2009 - 19:06) luncher написал(а):
вот код, надеюсь он поможет решить проблему
PHP |
<?php header("Content-Type: text/html; charset=utf-8"); $link=mysql_connect("","",""); mysql_select_db("guests");
$num_id=$_GET['num_id']; //получаем айди чтобы сравнивать и определять следующую фотку $num_photo=$_GET['num_photo']; //получаем номер фотки из режима 16 фоток. //$num_id_test=$num_id;
/*$sql2="SELECT id FROM photos WHERE id<$num_id_test ORDER BY id LIMIT 1"; $path2=mysql_query($sql2,$link); $num_id_1=mysql_fetch_row($path2); $num_id_1=$num_id_1[0]; // определяем айди который передаем методом гет для определений предыдущих ссылок */ echo "<img src=\"".$num_photo."\">";
$sql2="SELECT small FROM photos WHERE $num_id<id ORDER BY id LIMIT 1"; $path2=mysql_query($sql2,$link); $num_photo=mysql_fetch_row($path2); $num_photo=$num_photo[0]; // определяем ссылку на следующую фотографию
/*$sql2="SELECT small FROM photos WHERE id<$num_id ORDER BY id LIMIT 1"; $path2=mysql_query($sql2,$link); $num_photo_1=mysql_fetch_row($path2); $num_photo_1=$num_photo_1[0]; // определяем ссылку на предыдущую фотографию */ $sql2="SELECT id FROM photos WHERE $num_id<id ORDER BY id LIMIT 1"; $path2=mysql_query($sql2,$link); $num_id=mysql_fetch_row($path2); $num_id=$num_id[0];
//echo "id1= ".$num_id." id2= ".$num_id_1;
echo "<br>"; //echo "<a href=\"pub_photo.php?num_photo=".$num_photo_1."&num_id=".$num_id_1."\">Предыдущая</a>"; echo "<a href=\"pub_photo.php?num_photo=".$num_photo."&num_id=".$num_id."\">Следующая</a>";
|
Спустя 2 часа, 36 минут, 39 секунд (29.08.2009 - 21:43) ИНСИ написал(а):
Я так понял, название фотки хранится в small?! Если в id, то код можно легко подредактировать, в общем, будут вопросы, пиши...
и еще. пиши код покрасивее =)) в дальнешем тебе понадобиться =))
PHP |
$num_photo = intval($_GET['num_photo']); $show = mysql_query(" SELECT small FROM photos WHERE id = '{$num_photo}' "); $row_show = mysql_fetch_array($show); echo '<img src=\"'.$row_show["small"].'\">'; $pervpage = mysql_query(" SELECT id FROM photos WHERE {$num_photo} < id ORDER BY id LIMIT 1 "); if(mysql_num_rows($pervpage) == true) { $row_perv = mysql_fetch_array($pervpage); $prev_page = $row_perv['id']; } else { $prev_page = mysql_query("SELECT id FROM photos ORDER BY id DESC LIMIT 1"; $row_perv = mysql_fetch_array($pervpage); $prev_page = $row_perv['id']; } $nextpage = mysql_query(" SELECT id FROM photos WHERE {$num_photo} > id ORDER BY id LIMIT 1 "); if(mysql_num_rows($nextpage) == true) { $row_next = mysql_fetch_array($nextpage); $next_page = $row_next['id']; } else { $next_page = 1; }
echo '<a href=\"pub_photo.php?num_photo='.$prev_page.'\">Предыдущая</a>'; echo '<a href=\"pub_photo.php?num_photo='.$next_page.'\">Следующая</a>'; |
Спустя 55 минут, 10 секунд (29.08.2009 - 22:38) glock18 написал(а):
Пожалуйста, определение id следущей фотографии одним запросом:
SQL |
SELECT IF (MAX(m.id) > 11, MIN(m1.id), MIN(m.id)) as dn FROM menu m, menu m1 WHERE m1.id > 11 LIMIT 1; |
Который согласно explain "оптимизорован нафик - дальше некуда". 11 - текущий id
Спустя 3 часа, 25 минут, 3 секунды (30.08.2009 - 02:03) luncher написал(а):
спасибо всем большое за ответы