[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: самописный фотоальбом
luncher
пишу свой фотоальбом на подобие вконтактовского. Проблема следующая когда просматриваешь по одной фотографии (тоесть каждая предыдущая является ссылкой на следующую) и доходишь до конца альбома тоесть когда например айди нынешней фотографии 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 написал(а):
спасибо всем большое за ответы
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.