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

Форум PHP

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

 

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

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

тема: Трабла с постраничкой
 
 автор: SaTa   (11.09.2005 в 22:37)   письмо автору
 
 

Знаю что неоднократно были тута такие темы возникла такой нюанс взял тута код постранички у вас вмонтировал к себе всё бы хорошо тока вот такая беда сперва всё номана выводит 1 страница как дожно а вот при нажатии на следующие 2 и тд невыводит нифига что можно зряче увидеть тут если я что то нетак сказал или непонятно http://www.autolegra.ru/catalog/brief2.php?brand_b=TOYT. Заранее спасибо.


  //======================================================
$num = 2; 
$page = $_GET['page'];  
$result = mysql_query("SELECT COUNT(*) FROM catalog WHERE brand='$brand_b'"); 
$posts = mysql_result($result,0); 
$total = intval(($posts - 1) / $num) + 1; 
$page = intval($page); 
if(empty($page) or $page < 0) $page = 1; 
  if($page > $total) $page = $total; 
$start = $page * $num - $num; 
$result = mysql_query("SELECT * FROM catalog WHERE brand='$brand_b' LIMIT $start, $num"); 
while ( $postrow[] = mysql_fetch_array($result))
  //======================================================
if ($page != 1) $pervpage = '<a href= ./brief2.php?brand='.$brand_b.'&page=1><<</a> 
                               <a href= ./brief2.php?brand='.$brand_b.'&page='. ($page - 1) .'><</a> '; 
// Проверяем нужны ли стрелки вперед 
if ($page != $total) $nextpage = ' <a href= ./brief2.php?brand='.$brand_b.'&page='. ($page + 1) .'>></a> 
                                   <a href= ./brief2.php?brand='.$brand_b.'&page=' .$total. '>>></a>'; 

// Находим две ближайшие станицы с обоих краев, если они есть 
if($page - 2 > 0) $page2left = ' <a href= ./brief2.php?brand='.$brand_b.'&page='. ($page - 2) .'>'. ($page - 2) .'</a> | '; 
if($page - 1 > 0) $page1left = '<a href= ./brief2.php?brand='.$brand_b.'&page='. ($page - 1) .'>'. ($page - 1) .'</a> | '; 
if($page + 2 <= $total) $page2right = ' | <a href= ./brief2.php?brand='.$brand_b.'&page='. ($page + 2) .'>'. ($page + 2) .'</a>'; 
if($page + 1 <= $total) $page1right = ' | <a href= ./brief2.php?brand='.$brand_b.'&page='. ($page + 1) .'>'. ($page + 1) .'</a>'; 

// Вывод меню 
echo $pervpage.$page2left.$page1left.'<b>'.$page.'</b>'.$page1right.$page2right.$nextpage;
  //======================================================
echo "
<br>
<br>
<TABLE width=\"100%\" border=1 cellPadding=0 cellSpacing=0>
 <TBODY>
  <TR>
   <TD>№ лота</TD>
   <TD>Выпуск</TD>
   <TD>Модель</TD>
   <TD>Дата аукциона</TD>
   <TD>Повреждения</TD>
   <TD>Одометр</TD>
  </TR> 
";
for($i = 0; $i < $num; $i++) 
{
 echo "
  <tr>
   <TD><a href=\"full.php?id=".$postrow[$i]['id']."\">".$postrow[$i]['number_lot']."&nbsp</a></TD>
   <td>".$postrow[$i]['year_release']."&nbsp</td>
   <td>".$postrow[$i]['model']."&nbsp</td>
   <td>".$postrow[$i]['liveAuction']."&nbsp</td>
   <td>".$postrow[$i]['damage']."&nbsp</td>
   <td>".$postrow[$i]['odometr']."&nbsp</td>
  </tr>";
}
 echo "</TBODY></table><br><br>";
  //======================================================

   
 
 автор: cheops   (12.09.2005 в 00:50)   письмо автору
 
   для: SaTa   (11.09.2005 в 22:37)
 

Следует исправить строки
<?php
  $posts 
mysql_result($result,0); 
  
$total intval(($posts 1) / $num) + 1;
?>

на
<?php
  $total 
mysql_result($result,0); 
?>

   
 
 автор: sata   (12.09.2005 в 02:30)   письмо автору
 
   для: cheops   (12.09.2005 в 00:50)
 

Тот же эффект только при нажатии на страницу теперь отображается 0 вместо 1, а так всё по старому отображения информации нет

   
 
 автор: sata   (12.09.2005 в 13:12)   письмо автору
 
   для: sata   (12.09.2005 в 02:30)
 

Что неужто никто незнает ? просто оч надо.

   
 
 автор: cheops   (12.09.2005 в 13:51)   письмо автору
 
   для: sata   (12.09.2005 в 13:12)
 

Тогда прикрепите дамп таблицы к сообщению, чтобы мы могли потестировать скрипт на локальной машине и локализовать ошибку.

   
 
 автор: sata   (12.09.2005 в 14:46)   письмо автору
 
   для: cheops   (12.09.2005 в 13:51)
 

Собственно сам скрипт страницы и дамп

   
 
 автор: cheops   (13.09.2005 в 01:08)   письмо автору
 
   для: sata   (12.09.2005 в 14:46)
 

Откуда берётся переменная $brand_b?

   
 
 автор: sata   (13.09.2005 в 08:51)   письмо автору
 
   для: cheops   (13.09.2005 в 01:08)
 

Это марка машины она передаётся из начала каталога, можно временно отключить я потом добавлю обратно

   
 
 автор: cheops   (13.09.2005 в 13:24)   письмо автору
 
   для: sata   (13.09.2005 в 08:51)
 

Я так и не понял в чём смысл поиска - в SQL-запросах поиск осуществляется только по $brand_b, поставил строку
<?php
  $brand_b 
'FORD';
?>

и у меня постраничная навигация заработала без всякого поиска (причём коректно). Скорее всего у вас при первом обращении не инициируется переменная $brand_b, без которой ничего не работает.
У вас имеется форма
                                    <form action="">
                                      <input type="text" name="mod">
                                      <input type="submit" name="go">
                                    </form>

При вводе в которую в адресную строку помещаются параметры mod и go при переходе по ссылкам постраничной навигации они теряются и, следовательно, не влияют на результаты запроса.

   
 
 автор: sata   (13.09.2005 в 18:58)   письмо автору
 
   для: cheops   (13.09.2005 в 13:24)
 

Признаю моя вина плохо обьяснил да и в скрипт я не внёс изменения форма эта нужна вот для этого


if(empty($mod))
{
 $result = mysql_query("SELECT COUNT(*) FROM catalog WHERE brand='$brand_b'"); 
}
else 
{
 $result = mysql_query("SELECT COUNT(*) FROM catalog WHERE brand='$brand_b' or model='$mod'"); 
}


Немного поразмыслив над тем что вы написали я поудалял нах переменную $brand_b и обьявил её глобальной, как ни странно заработало.
Но возник вопрос именно с этой формой хотел доделать выборку по модели но фигня какая то получается попытался с запросами поиграть так либо неработает либо выводит но опять таки всю таблицу.

Неподскажите что нетак с конструкцией потому что дело в ней.
Прикрепил файл с нынешней конфигурацией скрипта

   
 
 автор: cheops   (13.09.2005 в 19:27)   письмо автору
 
   для: sata   (13.09.2005 в 18:58)
 

Вы когда из формы передаёте данные методом GET - они появляются в строке запроса - вы это можете наблюдать даже. Когда же вы переходите по ссылкам
<?php
if ($page != 1$pervpage '<a href= ./brief2.php?page=1><<</a> 
                               <a href= ./brief2.php?page='
. ($page 1) .'><</a> '
// Проверяем нужны ли стрелки вперед 
if ($page != $total$nextpage ' <a href= ./brief2.php?page='. ($page 1) .'>></a> 
                                   <a href= ./brief2.php?page=' 
.$total'>>></a>'

// Находим две ближайшие станицы с обоих краев, если они есть 
if($page 0$page2left ' <a href= ./brief2.php?page='. ($page 2) .'>'. ($page 2) .'</a> | '
if(
$page 0$page1left '<a href= ./brief2.php?page='. ($page 1) .'>'. ($page 1) .'</a> | '
if(
$page <= $total$page2right ' | <a href= ./brief2.php?page='. ($page 2) .'>'. ($page 2) .'</a>'
if(
$page <= $total$page1right ' | <a href= ./brief2.php?page='. ($page 1) .'>'. ($page 1) .'</a>'
?>

параметры mod и go, которые попали в адресную строку из формы - пропадают - вываливается всё содержимое таблицы, т.е. вместо
href= ./brief2.php?page='. ($page - 1) .'

нужно писать что-то в этом духе
href= ./brief2.php?page='. ($page - 1) .'&mod=$mod&go=$go

   
 
 автор: sata   (13.09.2005 в 21:42)   письмо автору
 
   для: cheops   (13.09.2005 в 19:27)
 

Дело в том что у меня невыходит здесь постраничку с этими параметрами (модель) вроде всё просто ан ботва всё какая то получается.

   
 
 автор: sata   (14.09.2005 в 22:44)   письмо автору
 
   для: sata   (13.09.2005 в 21:42)
 

Усё тема закрылась чуствую

   
Rambler's Top100
вверх

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