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

Форум MySQL

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

 

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

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

тема: организация постраничного вывода результатов поиска
 
 автор: kzone   (02.05.2007 в 21:41)   письмо автору
 
 

Здравствуйте, уважаемые форумчане!
Искал я здесь долго, но так и не нашел ответа на свои вопросы... Есть что-то похожее, но переделать под себя никак не получается.
Условия:
Существует форма поиска по БД и скрипт - обработчик этой формы.
Данные передаются методом GET.
Поиск осуществляется при помощи конструкции LIKE.
Пример sql-запроса:
SELECT title, url, info FROM cat WHERE sekey LIKE '%$search_word%'
Вот столкнулся с такими проблемами:
1. Организация постраничной навигации вида:
на 1-ой странице
Далее
В конец
на последующих
Далее
Назад
В начало
В конец
на последней
Назад
В начало
------
Пытался сделать методом, описанным в статье о постраничной навигации http://www.softtime.ru/info/articlephp.php?id_article=33 , но ничего не вышло... При переходе на следующую страницу запрос теряется.
2. Когда выводятся значения выполнения sql-запроса (вывод результата запроса) при помощи while, необходимо пронумеровать выводимые данные таким образом:
1. Название
(ссылка)
Здесь у нас располагается информацию и прочие данные

2. Название2
(ссылка2)
Здесь у нас располагается тоже некая информация

И так далее...
Знаю, что надо пробежаться циклом for, но как и где его разместить не вижу. :)
Может кто уже сталкивался с подобными вопросами? Помогите...
Заранее благодарен.

   
 
 автор: kzone   (03.05.2007 в 12:08)   письмо автору
 
   для: kzone   (02.05.2007 в 21:41)
 

с постраничной навигацией разобрался сам :)
остался 2-ой вопрос насчет цикла for. Понимаю, что не соответствует подфоруму, но охота, чтобы все было в одной логической цепи :) может кому-нибудь пригодится :)

   
 
 автор: Trianon   (03.05.2007 в 12:21)   письмо автору
 
   для: kzone   (03.05.2007 в 12:08)
 

Как у Вас выглядит цикл while?

   
 
 автор: kzone   (03.05.2007 в 12:42)   письмо автору
 
   для: Trianon   (03.05.2007 в 12:21)
 

Здравствуйте, Trianon!
С циклом я сделал так:
 
for ($i=1; $i<=$total; $i++)
{
while ($line=mysql_fetch_array($result))
{
print "$i. <a href=\"$line[1]\">$line[0]</a><br/>";
print "($line[1]<br/>)";
print "$line[2]<br/><br/>";
break;
}
}

в этом случае все получается хорошо, но, правда, при переходе на следующую страницу, нумерация начинается опять с 1. :)
видимо надо передавать значение $i ? Как это можно осуществить? Я имею ввиду, чтобы при переходе на следующую станицу значение $i начиналось с количества уже имеющихся чисел+то, что выводится сейчас. Что-то я коряво написал :) Или может у вас есть более простой и пример?

   
 
 автор: Trianon   (03.05.2007 в 12:47)   письмо автору
 
   для: kzone   (03.05.2007 в 12:42)
 

Перемудрили.


for ($i=1; $line=mysql_fetch_array($result); $i++) 

  print "$i. <a href=\"$line[1]\">$line[0]</a><br/>"; 
  print "($line[1]<br/>)"; 
  print "$line[2]<br/><br/>"; 

   
 
 автор: Trianon   (03.05.2007 в 12:50)   письмо автору
 
   для: Trianon   (03.05.2007 в 12:47)
 

Если Вы хотите нумеровать объекты сквозным образом, нужно по параметрам постранички определить точку отсчета.

$from = intval($_GET['from']);
for ($i=$from; $line=mysql_fetch_array($result); $i++) 

  print "$i. <a href=\"$line[1]\">$line[0]</a><br/>"; 
  print "($line[1]<br/>)"; 
  print "$line[2]<br/><br/>"; 

   
 
 автор: kzone   (03.05.2007 в 13:14)   письмо автору
 
   для: Trianon   (03.05.2007 в 12:50)
 

:) действительно перемудрил :) Спасибо!
да, да :) именно сквозным. :) я уже дошел до этого :) своими силами :)
Большое спасибо!
Теперь правда надо расчитать с кого числа будет идти нумерация для каждой странички. :)
для первой еще понятно:
<a href=\"".$_SERVER['PHP_SELF']."?set=$set&page=".($page+1)."&from=".($pnumber+1)."\">Далее</a>
а вот как для остальных(приведены в первом посту)?
$set - запрос
$pnumber - количество результатов, выводимых на страницу.

   
 
 автор: kzone   (03.05.2007 в 13:24)   письмо автору
 
   для: kzone   (03.05.2007 в 13:14)
 

да и я сделал так:

if (isset($_GET['from']))
$from=intval($_GET['from']);
else $from=1;

   
 
 автор: kzone   (03.05.2007 в 13:28)   письмо автору
 
   для: kzone   (03.05.2007 в 13:24)
 

ВСЕ! Дошло! :)
Trianon, еще раз большое СПАСИБО!

   
 
 автор: Trianon   (03.05.2007 в 13:40)   письмо автору
 
   для: kzone   (03.05.2007 в 13:14)
 

:)

   
Rambler's Top100
вверх

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