Vasya
Новичок
Добрый день!!! Помогите пожалуйста сделать постраничный вывод. Я в этом деле новичок не могу никак доделать.
Ниже показана часть кода. В нём поиск по базе идёт на ура и выводит на первую страницу 20 первых записей из базы. а когда нажимаю чтобы перейти на 2.... страницу выдаёт ошибку: Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in Z:\home\localhost\www\000\blocks\ksearch.php on line 77
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource
Может кто-то сможет помочь. Спасибо заранее.
Ниже показана часть кода. В нём поиск по базе идёт на ура и выводит на первую страницу 20 первых записей из базы. а когда нажимаю чтобы перейти на 2.... страницу выдаёт ошибку: Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in Z:\home\localhost\www\000\blocks\ksearch.php on line 77
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource
Может кто-то сможет помочь. Спасибо заранее.
PHP:
/* Соединение, выбор БД */
$link = mysql_connect("localhost", "root", "") or die("Не соединилось!!!");
$db = mysql_select_db("library") or die("Не найдена БД");
/* Делаем запрос к базе данных*/
$search = mysql_real_escape_string($_POST['txtSearch1']);
$search2 = mysql_real_escape_string($_POST['txtSearch2']);
$search3 = mysql_real_escape_string($_POST['txtSearch13']);
$search4 = mysql_real_escape_string($_POST['txtSearch14']);
echo '<hr />';
$per_page = 20;
for($i=1;$i<=$num_pages;$i++) {
echo '<a href="'.$_SERVER['PHP_SELF'].'?num='.$i*$per_page.'">'.$i."</a>\n";}
// получаем номер страницы
if (isset($_GET['page'])) $page=($_GET['page']-1); else $page=0;
// вычисляем первый оператор для LIMIT
$start=abs($page*$per_page);
// составляем запрос и выводим записи
// переменную $start используем, как нумератор записей.
$q="SELECT * FROM books WHERE (".mysql_escape_string($_POST['txtFields1'])." like '%".$search."%')
and (".mysql_escape_string($_POST['txtFields2'])." like '%".$search2."%')
and (".mysql_escape_string($_POST['txtFields3'])." like '%".$search3."%')
and (".mysql_escape_string($_POST['txtFields4'])." like '%".$search4."%') ORDER BY id, title LIMIT $start,$per_page";
$res=mysql_query($q);
while($row=mysql_fetch_array($res)) {
{echo ++$start.". ".$row['title'].". ".$row['subtitle'].". ".$row['authors'].". ".$row['editors']."<br>\n";}}
// дальше выводим ссылки на страницы:
//title, subtitle, authors, editors, city, publisher, publish_year, pages_count
$q="SELECT count(*) FROM books WHERE (".mysql_escape_string($_POST['txtFields1'])." like '%".$search."%')
and (".mysql_escape_string($_POST['txtFields2'])." like '%".$search2."%')
and (".mysql_escape_string($_POST['txtFields3'])." like '%".$search3."%')
and (".mysql_escape_string($_POST['txtFields4'])." like '%".$search4."%')";
$res=mysql_query($q);
$row=mysql_fetch_row($res);
$total_rows=$row[0];
$num_pages=ceil($total_rows/$per_page);
for($i=1;$i<=$num_pages;$i++) {
if ($i-1 == $page) {
echo $i." ";
} else {
echo '<a href="'.$_SERVER['PHP_SELF'].'?page='.$i.'">'.$i."</a> ";}}
/* Закрытие соединения */
mysql_close($link);