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

Форум PHP

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

 

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

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

тема: Подменить цифры на фотки
 
 автор: designshadow   (01.11.2010 в 14:50)   письмо автору
 
 

Есть такой код:

$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 именем файла фотки. Как можно подменить цифры на фотки?

  Ответить  
 
 автор: sim5   (01.11.2010 в 15:06)   письмо автору
 
   для: designshadow   (01.11.2010 в 14:50)
 

Error_Reporting(E_ALL & ~E_NOTICE); - это то зачем в коде реальном?
Какие цифры, вот эти $page + 1? И на какие фотки? Уменьшенные копии имеющихся изображений?

  Ответить  
 
 автор: designshadow   (01.11.2010 в 15:32)   письмо автору
 
   для: sim5   (01.11.2010 в 15:06)
 

>Error_Reporting(E_ALL & ~E_NOTICE); - это то зачем в коде реальном?
Убирает сообщение warning.

>Какие цифры, вот эти $page + 1? И на какие фотки? Уменьшенные копии имеющихся изображений?
Да, эти цифры, если у конкретного юзера есть 5 фоток, то выведится << < 1 2 3 4 5 > >>
А я хочу из таблицы 'photo' получить имена фоток которые уже маленькие. Имена фото-файлов содержатся в поле small_photo. Задача заменить цифры на фото.

  Ответить  
 
 автор: sim5   (01.11.2010 в 15:42)   письмо автору
 
   для: designshadow   (01.11.2010 в 15:32)
 

Ну коли имена фото в базе, и вы пути знаете, то кто вам мешает получать в запросе эти имена и прописывать теги?

  Ответить  
 
 автор: designshadow   (01.11.2010 в 15:52)   письмо автору
 
   для: sim5   (01.11.2010 в 15:42)
 

Отдельный запрос надо делать? Я не знаю как конкретную фотку увязать с конкретной цифрой.

  Ответить  
 
 автор: sim5   (01.11.2010 в 16:15)   письмо автору
 
   для: designshadow   (01.11.2010 в 15:52)
 

Ну это уж вам решать с какой цифрой какое изображение связать.
Я понития не имею, что за контент вы будете показывать, но изображения как-то связаны с чем-то, а это "что-то" может быть отсортировано по чем-то. Вот сортировка вам и определит имена изображений, а цифры, это абстрактное понятие - пользователь их у вас уже не будет видеть, а вы их будете получать как параметр, смещение, которое будете проставлять для LIMIT в запросе, дабы выдать новую порцию.
Вам всегда нужно будет делать запрос на выборку только части записей, по запросу пользователя, а это как понимаете не подсчет общего числа записей, который можно вообще-то сделать единожды и запомнить, чтобы не обращаться больше к базе.

  Ответить  
 
 автор: designshadow   (01.11.2010 в 19:54)   письмо автору
 
   для: 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];

  Ответить  
 
 автор: sim5   (01.11.2010 в 20:27)   письмо автору
 
   для: 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] и т.п., у вас что в базе готовые теги изображений прописаны, а не их имена?

  Ответить  
 
 автор: Лена   (01.11.2010 в 17:44)   письмо автору
 
   для: designshadow   (01.11.2010 в 14:50)
 

Вы не туда думаете.
Цифры, которые у вас сейчас выводятся - это номера страниц.
Вы получили количество фоток - это количество учитывается при построении тех цифр, что вы видите перед собой - навигации по страницам.
На страницах должны быть сами фотки.
Чтобы их вывести, надо сделать еще один запрос к базе, который выведет то количество фоток на одной странице, сколько вы хотите.
Запрос этот должен выглядеть примерно так:
SELECT * FROM `photo` WHERE id='$id LIMIT $start,$num'"
где $start - это с какого номера надо выводить ваши фото, $start = $page * $num - $num;
$num - число элементов, которые выводятся на странице

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

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