@noralesma

Почему не работает постраничная навигация?

Есть постраничная навигация, которая правильно выводит товары, но почему то не работает сама навинация, показывает, что есть всего 1 страница, хотя настроила вывод товаров 2 из 3.

Так же выдает ошибку:

Warning: mysqli_query() expects at least 2 parameters, 1 given in W:\domains\plitka\plitka.php on line 79

Warning: mysqli_fetch_row() expects parameter 1 to be mysqli_result, null given in W:\domains\plitka\plitka.php on line 80

в коде:

$result = mysqli_query("SELECT COUNT(*) FROM `proizvoditel` $where ");  
$posts = mysqli_fetch_row($result);


Сам код:

$link = mysqli_connect($db_host, $db_user, $db_password, $db_database) 
    or die("Ошибка " . mysqli_error($link)); 
 
if(!empty($cat))
{   
    $escaped_cat = mysqli_real_escape_string($link, $cat);
    $where = "WHERE `brand` = '$escaped_cat'";
}
else
    $where = '';
 
 
$num = 2;  
// Извлекаем из URL текущую страницу  
$page = $_GET['page'];  
// Определяем общее число сообщений в базе данных  
$result = mysqli_query("SELECT COUNT(*) FROM `proizvoditel` $where ");  
$posts = mysqli_fetch_row($result);  
 
 
// Находим общее число страниц  
$total = intval(($posts - 1) / $num) + 1;  
// Определяем начало сообщений для текущей страницы  
$page = intval($page);  
// Если значение $page меньше единицы или отрицательно  
// переходим на первую страницу  
// А если слишком большое, то переходим на последнюю  
if(empty($page) or $page < 0) $page = 1;  
if($page > $total) $page = $total;  
// Вычисляем начиная к какого номера  
// следует выводить сообщения  
$start = $page * $num - $num;  
  
 
 
$query = "SELECT * FROM `proizvoditel` $where LIMIT $start, $num ";
  


$query = "SELECT * FROM `proizvoditel` $where LIMIT $start, $num ";
 
$result = mysqli_query($link, $query) or die("Ошибка " . mysqli_error($link)); 


if (mysqli_num_rows($result) > 0)
{
 $row = mysqli_fetch_array($result); 
 
 do
 {
	
						 echo '	 	
    <div class="col-md-3">
        <div class="finish">
        	<div class="finishimg"><a href="product.php"> <img src="'.$row["img"].'"/></a> </div>
        	<h3>'.$row["proizvoditel"].'</h3>
        	<p><a href="product.php">Смотреть</a></p>
        </div>
    </div>
    
  ';
}
    while ($row = mysqli_fetch_array($result));
}


Код постраничной навигации:

// Проверяем нужны ли стрелки назад  
if ($page != 1) $pervpage = '<li><a href=plitka.php?page=1><<</a>  </li>
<li><a href=plitka.php?page='. ($page - 1) .'><</a></li> ';  
// Проверяем нужны ли стрелки вперед  
if ($page != $total) $nextpage = ' <li><a href=plitka.php?page='. ($page + 1) .'>></a></li>  
<li><a href=plitka.php?page=' .$total. '>>></a></li>';  

// Находим две ближайшие станицы с обоих краев, если они есть  
if($page - 2 > 0) $page2left = ' <li><a href=plitka.php?page='. ($page - 2) .'>'. ($page - 2) .'</a> </li>| ';  
if($page - 1 > 0) $page1left = '<li><a href=plitka.php?page='. ($page - 1) .'>'. ($page - 1) .'</a></li> | ';  
if($page + 2 <= $total) $page2right = ' | <li><a href=plitka.php?page='. ($page + 2) .'>'. ($page + 2) .'</a></li>';  
if($page + 1 <= $total) $page1right = ' | <li><a href=plitka.php?page='. ($page + 1) .'>'. ($page + 1) .'</a></li>';  

// Вывод меню  
echo $pervpage.$page2left.$page1left.'<li><a>'.$page.'</a></li>'.$page1right.$page2right.$nextpage;


Перепробовала уже кучу вариантов и никак не смогла решить эту проблему, плюс не знаю, как переписать запросы под PHP 7.

5e03c053d389e077513882.png
  • Вопрос задан
  • 112 просмотров
Пригласить эксперта
Ответы на вопрос 1
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
Ну ёлки-палки....
Должно быть: $result = mysqli_query($link, "SELECT COUNT(*) FROM `proizvoditel` $where ");
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы