Привет всем!
Необходимо собрать воидино 2 скрипта. У самого неполучилось - поиск работал но постраничная навигация нэт. Подозреваю что сначало надо как то посчитать количество найденых строк а потом уже выводить постраничную навигацию.
Форма поиска:
HTML |
<form name="form" action="search.php" method="get"> <input type="text" name="q" /> <input type="submit" name="Submit" value="Search" /> </form> |
Скрипт поиска:
PHP |
// получаем поисковый запрос <? $var = @$_GET['q'] ; $trimmed = trim($var); //trim whitespace from the stored variable
include ("bloks/bd.php");
// из постранбчной навигации $str=($pagenr-1)*$perPage;
$query = "SELECT * FROM table WHERE name1 LIKE '%" . $trimmed . "%' OR name2 LIMIT $str, $perPage";
$numresult=mysql_query($query);
$numrow=mysql_fetch_array($numresult) or die(mysql_error());
$result = mysql_query($query) or die("Couldn't execute query"); // дальше выводим резуьтаты в Браузер
|
Скрипт постраничной навигации:
PHP |
// Set $pagenr variable Get page number, if any if(isset($_GET['pagenr'])) { if(!is_numeric($_GET['pagenr'])) { echo 'Error.'; exit(); } $pagenr = $_GET['pagenr']; } else { $pagenr=1; } // Calculate how many rows or records in total the query will output $queryCount = 'SELECT count(*) FROM table'; $resultCount = mysql_query($queryCount); $fetch_row = mysql_fetch_row($resultCount); $numrows = $fetch_row[0];
// if there is no results if($numrows == 0) { echo 'no results'; exit(); }
// Calculate number of pages $perPage = 5; //$perPage = $select; $lastpage = ceil($numrows/$perPage); $pagenr = (int)$pagenr; if($pagenr<1) { $pagenr=1; } else if($pagenr>$lastpage) { $pagenr=$lastpage; }
//Generate page links if($pagenr==1) { $pages = 'first | last'; } else { $pages = "<a href='{$_SERVER['PHP_SELF']}?pagenr=1'>first</a> | "; $prevpage=$pagenr-1; $pages .= " <a href='{$_SERVER['PHP_SELF']}?pagenr=$prevpage'>prev</a> "; } $pages .= ' ( page'.$pagenr.' of '.$lastpage.' ) '; if($pagenr==$lastpage) { $pages .= ' next | last '; } else { $nextpage = $pagenr+1; $pages .= " <a href='".$_SERVER['PHP_SELF']."?pagenr=$nextpage'>next</a> | "; $pages .= " <a href='".$_SERVER['PHP_SELF']."?pagenr=$lastpage'>last</a>"; }
// Echo pages
echo '<br><div style="width:100%; text-align: center; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; color:#999;">'.$pages.'</div>' |
Спустя 5 часов, 13 минут, 16 секунд (29.08.2009 - 00:14) Anton63 написал(а):
Цитата |
Подозреваю что сначало надо как то посчитать количество найденых строк а потом уже выводить постраничную навигацию.
|
Логично...
Цитата |
$query = "SELECT * FROM table WHERE name1 LIKE '%" . $trimmed . "%' OR name2 LIMIT $str, $perPage";
|
Здесь LIMIT зря поставил... помоему его там не должно быть...
А ваще со скриптом поиска я и сам не справился... так, что не слушай меня... я ничему хорошему не научу...
_____________
____
Извините за глупые вопросы но я только учусь ;) ;)