2016-03-22 2 views
0

Я работаю над фрагментом кода, который разбивает страницы на разные системы сортировки. Он работает для нравится (система сортировки) и выводит правильно, но не работает для сортировочной системы тег.Мне нужно руководство по исправлению разбивки на страницы PHP-код

$sorting = $_GET["sorting"]; 
$page = $_GET["page"]; 

$per_page = 10; 
$pages = $count_total->num_rows; 
$total_pages = ceil($pages/$per_page); 

if($sorting == "likes") { 
    $count_total = $db2->query("SELECT * FROM likes WHERE user='$user'"); 
} 

if($sorting == "tag") { 
    $tag_name = $_GET["tag_name"]; 
    $count_total = $db2->query("SELECT * FROM movie_tags WHERE tag_id='$tag_name'"); 
} 

$pages = $count_total->num_rows; 
$total_pages = ceil($pages/$per_page); 

$start = (($page - 1) * $per_page); 


for ($number=1; $number<=$total_pages; $number++) { 
    if($page == $number) { 
     echo '<div class="complete_page">'.$number.'</div>'; 
    } else { 
     $sorting = $_GET["sorting"]; 
     echo '<a href="?page='.$number.'&sorting='.$sorting.'"> <div class="number_page">'.$number.'</div></a>'; 
    } 
} 

Это пример того, как я использую пагинацию:

$movie = $db2->query("SELECT * FROM movies ORDER BY likes DESC LIMIT $start, $per_page"); 

ПРИМЕЧАНИЯ: Когда я эхо $pages, обе системы сортировки генерировать значение. Фактически, тег имеет значение 11. Почему это значение не создает систему разбиения на страницы. Я знаю, что это не проблема с системой разбиения на страницы, потому что она работает для сортировочной системы подобных.

+2

Вы уязвимы для [SQL-инъекций] (http://bobby-tables.com) –

+0

@MarcB Я знаю. Я прокрастинатор и нуждаюсь в повышении безопасности на моем сайте. Я новый разработчик, и я пытаюсь научиться так сильно, как я могу ... –

+0

Вы передали значение запроса «tag_name» в вашей разбивке на страницы? Я не вижу никаких номеров страниц, которые вы выдаете, поэтому '$ _GET ['tag_name']' не определено, и вы делаете '... where tag_id = ''' –

ответ

0

Чтобы иметь разбиение на страницы в php, просто вам нужно использовать две вещи в запросе.

  1. Смещение
  2. Limit

, например, для имеющих нумерацию страниц запрос выглядит

Select * from table Limit 5 Offset 0 

Make логики в PHP, получить количество продуктов и изменить эти два значения для пагинацией

+0

Это не сработает. В коде разбиения на страницы или в цикле while нет проблем, поскольку он работает для другой системы сортировки. Я считаю, что есть проблема с переменными. Однако я смущен, потому что получаю значение '11' –

Смежные вопросы