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

Форум MySQL

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

 

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

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

тема: Постраничный вывод результатов поиска
 
 автор: JESS   (26.07.2007 в 22:42)   письмо автору
 
 

Здравствуйте!
Пмогите пожалуйста =)
Когда я вывожу результаты поиска постранично, то получилось так, что сначала отображается все правильно, но после того когда я нажимаю на следующую страницу, т.е. происходит get-запрос (?page=...), то выводятся все ресултаты вообще. При повторном запросе теряется искомая строка.

PLZ!!


<form name="search_form" method="GET" action=<?php echo $_SERVER['PHP_SELF']; ?>>
    <table cellpadding="2" cellspacing="4" bordercolordark="black" bordercolorlight="black">
        <tr>
            <td width="965" valign="top" align="center"><input type="text" name="search"></td>
        </tr>
        <tr>
            <td width="965" valign="top" align="center"><input type="submit" value=OK name=go></td>
        </tr>
    </table>
</form>


<?php

include "conn.php";
      
$is_query false;
 
$lines_per_page 3//kol-vo strok na str
 
$sname='';
 
//$search='';



    
if(isset($_GET['search']))  {
      
$_SESSION['search'] = $_GET['search'];
  
$sname $_SESSION['search'];
  }

       if(!empty(
$_GET['go']))
{
$sname $_GET['search'] ;
}

//vsego zapiseyi
 
$query "SELECT * FROM $tablename WHERE name LIKE '%$sname%'  ";
 
$result mysql_query($query);
 
$all_lines mysql_num_rows($result);
//proveryaem ustanovlen li nomer str
 
if (!isset($page) or empty($page) or $page<=0$page=1;
 else 
$page=(int)$page;
 
$page_for_query $page-1;
//s kakoy pozicii schitivat' zapisi
 
$lpos $page_for_query $lines_per_page;
//zapros




 
$query "SELECT * FROM $tablename  WHERE name LIKE '%$sname%' ORDER BY name ASC LIMIT $lpos,$lines_per_page";
 
$result = @mysql_query($query) or die("$query <b>failed!</b><br>".mysql_error());


$count_pages ceil($all_lines $lines_per_page);
echo 
"<table><tr><td colspan=8 align=left>";
if (
$count_pages>1) {
 for (
$i=1$i<=$count_pages$i++) {
   if(
$page==$i and $i!=1) {echo " | <b><font style=color:#000000;<>$i</font>";}
   elseif (
$page==$i and $i==1) {echo "1";}
   elseif(
$i==and $page!=$i) {echo "  <a href=\"$PHP_SELF?page=$i\" >$i</a>";}

   elseif(
$i!=and $page!=$i) {echo " | <a href=\"$PHP_SELF?page=$i\" >$i</a></b>";}
 }
}
echo 
"</td></tr></table>";
WHILE (
$row MYSQL_FETCH_ROW($result))
$number mysql_num_rows($result);
if (!
$number);
  
/* Print the relevant information */
$i 0;


  PRINT 
"<hr>";
WHILE (
$i $number):
    
$j $i + ($page -1)*$lines_per_page;
    
$name mysql_result($result,$i,"name");
    
$url mysql_result($result,$i,"url");
    
$size mysql_result($result,$i,"size");
    
$date mysql_result($result,$i,"date");
    
$cat mysql_result($result,$i,"cat1");
    
$dl mysql_result($result$i,"dl");
    
$id mysql_result($result,$i,"id");
    if (
$i%== 0) {


   PRINT  
"<tr bgcolor=#E8E8E8>
<!-- <td>
$j</td>-->
 <td><a href=
$url>$name</a></td>

 <td>
$size</td>
 <td>
$dl</td>
     </tr><br>
"
;
       } else {
      PRINT  
"<tr bgcolor=#cccccc>
<!--<td>
$j</td> -->
<td><a href=
$url>$name</a></td>

<td>
$size</td>
<td>
$dl</td>

</tr><br>"
;

 }

$i++;


ENDWHILE;

PRINT  
"</table></td></tr>";

/* Close the database connection */
MYSQL_CLOSE();

?>

   
 
 автор: Trianon   (27.07.2007 в 03:08)   письмо автору
 
   для: JESS   (26.07.2007 в 22:42)
 

формируя ссылки постраничной навигации, Вам следует передавать в них не только номер нужной страницы, но и ВСЕ параметры фильтра поиска. И учитывать их при обработке запроса постранички.

   
 
 автор: JESS   (27.07.2007 в 03:34)   письмо автору
 
   для: Trianon   (27.07.2007 в 03:08)
 

Будте добры обясните по подробее, что то с сесиями да?

   
 
 автор: Trianon   (27.07.2007 в 09:05)   письмо автору
 
   для: JESS   (27.07.2007 в 03:34)
 

Нет, никакие сессии здесь здесь не при чем.
Что именно непонятно?

   
 
 автор: JESS   (27.07.2007 в 09:51)   письмо автору
 
   для: Trianon   (27.07.2007 в 03:08)
 

я на словах понимаю что вы имеете ввиду, а наглянд о даже не имею представления, =)

   
 
 автор: Trianon   (27.07.2007 в 10:14)   письмо автору
 
   для: JESS   (27.07.2007 в 09:51)
 

Теперь уже я не понимаю Вас.

>я на словах понимаю что вы имеете ввиду, а наглянд о даже не имею представления, =)
Так спрашивайте, о том что непонятно. Если на словах понимаете - значит и вопросы можете задавать.


PS.Или Вы хотите решение под ключ?
Тогда плиз по ссылке "письмо автору" - качество будет достойным, цена - адекватной.

   
 
 автор: JESS   (27.07.2007 в 10:27)   письмо автору
 
   для: Trianon   (27.07.2007 в 10:14)
 

хмм, ну если бы я строик какой-нибуть супер проект то бы 100% обратился к Вам, но я простo практикую, и подскажите пожлуйста тогда какие хорошие книги есть, ато много разных.... =)

   
 
 автор: Trianon   (27.07.2007 в 10:42)   письмо автору
 
   для: JESS   (27.07.2007 в 10:27)
 

Так вон сверху окна полка стоит целая! Вам - как раз! ))

   
Rambler's Top100
вверх

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