|
|
|
| Есть такой код:
$result = mysql_query("SELECT COUNT(*) FROM `photo` WHERE id='$id'");
$test = mysql_fetch_array($result);
$posts = $test[0];
$total = $posts ;
// Проверяем нужны ли стрелки назад
if ($page != 1) $pervpage = '<a href=view_ph.php?user='.$user.'&page=1><b><<</b></a> | <a href=view_ph.php?user='.$user.'&page='. ($page - 1) .'><b><</b></a> | ';
// Проверяем нужны ли стрелки вперед
if ($page != $total) $nextpage = ' | <a href=view_ph.php?user='.$user.'&page='. ($page + 1) .'><b>></b></a> | <a href=view_ph.php?user='.$user.'&page=' .$total. '><b>>></b></a>';
// Находим две ближайшие станицы с обоих краев, если они есть
if($page - 5 > 0) $page5left = ' <a href=view_ph.php?user='.$user.'&page='. ($page - 5) .'>'. ($page - 5) .'</a> | ';
if($page - 4 > 0) $page4left = ' <a href=view_ph.php?user='.$user.'&page='. ($page - 4) .'>'. ($page - 4) .'</a> | ';
if($page - 3 > 0) $page3left = ' <a href=view_ph.php?user='.$user.'&page='. ($page - 3) .'>'. ($page - 3) .'</a> | ';
if($page - 2 > 0) $page2left = ' <a href=view_ph.php?user='.$user.'&page='. ($page - 2) .'>'. ($page - 2) .'</a> | ';
if($page - 1 > 0) $page1left = ' <a href=view_pр.php?user='.$user.'&page='. ($page - 1) .'>'. ($page - 1) .'</a> | ';
if($page + 5 <= $total) $page5right = ' | <a href=view_ph.php?user='.$user.'&page='. ($page + 5) .'>'. ($page + 5) .'</a>';
if($page + 4 <= $total) $page4right = ' | <a href=view_pр.php?user='.$user.'&page='. ($page + 4) .'>'. ($page + 4) .'</a>';
if($page + 3 <= $total) $page3right = ' | <a href=view_ph.php?user='.$user.'&page='. ($page + 3) .'>'. ($page + 3) .'</a>';
if($page + 2 <= $total) $page2right = ' | <a href=view_ph.php?user='.$user.'&page='. ($page + 2) .'>'. ($page + 2) .'</a>';
if($page + 1 <= $total) $page1right = ' | <a href=view_ph.php?user='.$user.'&page='. ($page + 1) .'>'. ($page + 1) .'</a>';
// Вывод меню если страниц больше одной
if ($total > 1)
{
Error_Reporting(E_ALL & ~E_NOTICE);
echo "<div class=\"test\">";
echo $pervpage.$page5left.$page4left.$page3left.$page2left.$page1left.'<b>'.$page.'
</b>'.$page1right.$page2right.$page3right.$page4right.$page5right.$nextpage;
echo "</div>";
}
|
Так получаем числа кол-ва фоток конкретного ID. Как сделать чтобы за место цифр выводились фотки? Допустим, в таблице photo имеем поле small_photo c именем файла фотки. Как можно подменить цифры на фотки? | |
|
|
|
|
|
|
|
для: designshadow
(01.11.2010 в 14:50)
| | Error_Reporting(E_ALL & ~E_NOTICE); - это то зачем в коде реальном?
Какие цифры, вот эти $page + 1? И на какие фотки? Уменьшенные копии имеющихся изображений? | |
|
|
|
|
|
|
|
для: sim5
(01.11.2010 в 15:06)
| | >Error_Reporting(E_ALL & ~E_NOTICE); - это то зачем в коде реальном?
Убирает сообщение warning.
>Какие цифры, вот эти $page + 1? И на какие фотки? Уменьшенные копии имеющихся изображений?
Да, эти цифры, если у конкретного юзера есть 5 фоток, то выведится << < 1 2 3 4 5 > >>
А я хочу из таблицы 'photo' получить имена фоток которые уже маленькие. Имена фото-файлов содержатся в поле small_photo. Задача заменить цифры на фото. | |
|
|
|
|
|
|
|
для: designshadow
(01.11.2010 в 15:32)
| | Ну коли имена фото в базе, и вы пути знаете, то кто вам мешает получать в запросе эти имена и прописывать теги? | |
|
|
|
|
|
|
|
для: sim5
(01.11.2010 в 15:42)
| | Отдельный запрос надо делать? Я не знаю как конкретную фотку увязать с конкретной цифрой. | |
|
|
|
|
|
|
|
для: designshadow
(01.11.2010 в 15:52)
| | Ну это уж вам решать с какой цифрой какое изображение связать.
Я понития не имею, что за контент вы будете показывать, но изображения как-то связаны с чем-то, а это "что-то" может быть отсортировано по чем-то. Вот сортировка вам и определит имена изображений, а цифры, это абстрактное понятие - пользователь их у вас уже не будет видеть, а вы их будете получать как параметр, смещение, которое будете проставлять для LIMIT в запросе, дабы выдать новую порцию.
Вам всегда нужно будет делать запрос на выборку только части записей, по запросу пользователя, а это как понимаете не подсчет общего числа записей, который можно вообще-то сделать единожды и запомнить, чтобы не обращаться больше к базе. | |
|
|
|
|
|
|
|
для: sim5
(01.11.2010 в 16:15)
| | Пробую извлечь имя фоток, в массивы :
echo $my_arphoto[0];
echo $my_arphoto[1];
, но в них ничего не записывается, не знаю пока где ошибка.
КОД:
$my_arphoto=array();
$result_countph = mysql_query("SELECT small_photo as 'pht' FROM `photo` WHERE id='$id' GROUP BY small_photo ORDER BY date DESC, time DESC",$db);
if (!$result_countph)
{
exit ();
}
if (mysql_num_rows($result_countph) > 0)
{
while($resph=mysql_fetch_assoc($result_countph))
{
$my_arphoto[$resph['small_photo']]=$resph['pht'];
}
}
echo $my_arphoto[0];
echo $my_arphoto[1]; | |
|
|
|
|
|
|
|
для: designshadow
(01.11.2010 в 19:54)
| | Что значит if (!$result_countph), если вы до этого запросом узнавали количество записей пользователя, и строите для него навигатор? И почему exit ()? Что показали заголовок страницы и все?
У вас навигатор, надо полагать, по щелчку на изображении будет показывать некую страницу, а стрелки слева и справа будут выводить очередную или предыдущую порцию из 5, то есть определяют смещение?
Если да, то, Вы узнали общее число записей, определились с параметрами навигатора. Все, делаете запрос на фото. По умолчанию, когда пользователь еще не делал выбор, смещение равно 0, значит вы должны выбирать не все изображения, а только первые пять 0-4(если их не меньше пяти). Когда пользователь щелкнет по стрелке, вы выберите уже 5-9 и т.д..
Зачем GROUP BY в запросе? И промежуточный массив $my_arphoto вам совсем не нужен, вывод навигатора и тегов изображений в нем нужно делать одним циклом, иначе что это за навигатор, если выводится $my_arphoto[0], $my_arphoto[1] бог знает где, и само по себе. И почему $my_arphoto[0] и т.п., у вас что в базе готовые теги изображений прописаны, а не их имена? | |
|
|
|
|
|
|
|
для: designshadow
(01.11.2010 в 14:50)
| | Вы не туда думаете.
Цифры, которые у вас сейчас выводятся - это номера страниц.
Вы получили количество фоток - это количество учитывается при построении тех цифр, что вы видите перед собой - навигации по страницам.
На страницах должны быть сами фотки.
Чтобы их вывести, надо сделать еще один запрос к базе, который выведет то количество фоток на одной странице, сколько вы хотите.
Запрос этот должен выглядеть примерно так:
SELECT * FROM `photo` WHERE id='$id LIMIT $start,$num'"
где $start - это с какого номера надо выводить ваши фото, $start = $page * $num - $num;
$num - число элементов, которые выводятся на странице | |
|
|
|