[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Страницы
JESS
Я уже весь форум обсматрел как делать подстраничный вывод информации из БД,

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


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

Код
<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";

$lines_per_page = 3; //kol-vo strok na str
$sname='';
//$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==1 and $page!=$i) {echo " <a href=\"$PHP_SELF?page=$i\" >$i</a>";}

elseif($i!=1 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_numrows($result);
if (!$number);
/* Print the relevant information */
$i = 0;


PRINT "<hr>";
WHILE ($i < $number):
$j = $i + 1 + ($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%2 == 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();

?>




Спустя 5 часов, 30 минут, 49 секунд (25.07.2007 - 08:46) TRIAL написал(а):
А ты хоть используешь в запросе LIMIT $a, $b
Я использую и у меня всё нормально получается и работает.

Спустя 4 часа, 40 минут, 50 секунд (25.07.2007 - 13:27) JESS написал(а):
Цитата(TRIAL @ 25.7.2007, 7:46) [snapback]25183[/snapback]
А ты хоть используешь в запросе LIMIT $a, $b
Я использую и у меня всё нормально получается и работает.


да, я использую:
Код
$query = "SELECT * FROM $tablename WHERE name LIKE '%$sname%' ORDER BY name ASC LIMIT $lpos,$lines_per_page";


но не как не могу понять где ошобка, a как код, нормальный?? Может это изза Localhost, у меня денвсер стоит...

Спустя 1 день, 21 час, 50 минут, 28 секунд (27.07.2007 - 11:17) TRIAL написал(а):
Запрос вроде нормальный вполне. Локалхост или нет не имеет значение. Если данные извлекаются, значит всё ок.
Кстати попробуй фиксированный LIMIT прописать, т.е. например LIMIT 30, 10 и посмотри, выдаст он тебе эти значение с 30 позиции или нет. Если всё выдаст, значит ошибка в передаче $from и $lines_per_page


_____________
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.