2016-03-22 1 views
0

Ich arbeite an einem Stück Code, der Seitennummerierung für verschiedene Sortiersysteme. Es funktioniert für Likes (Sortiersystem) und gibt korrekt aus, aber funktioniert nicht für das Sortiersystem Tag.Ich brauche Anleitung bei der Fixierung Seitenumbruch PHP-Code

$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>'; 
    } 
} 

Dies ist ein Beispiel dafür, wie ich bin mit Paginierung:

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

HINWEIS: Wenn ich $pages Echo, beiden Sortiersysteme Werte erzeugen. Tatsächlich hat das Tag einen Wert von 11. Warum erstellt dieser Wert das Paginierungssystem nicht? Ich weiß, dass dies kein Problem mit dem Paginierungssystem ist, da es für das Sortiersystem von Likes funktioniert.

+2

Sie sind anfällig für [sql injection attacks] (http://bobby-tables.com) –

+0

@MarcB Ich weiß. Ich bin ein Zauderer und muss die Sicherheit auf meiner Seite erhöhen. Ich bin ein neuer Entwickler und versuche so viel wie möglich zu lernen ... –

+0

Haben Sie in Ihrer Seitennummer einen Abfragewert "tag_name" eingegeben? Ich sehe keine in den Seitenzahlen, die Sie ausgegeben haben, also ist $ _GET ['tag_name'] 'undefined, und Sie tun' ... wo tag_id = '' ' –

Antwort

0

Um Paginierung in PHP zu haben, müssen Sie einfach zwei Dinge in Abfrage verwenden.

  1. Offset
  2. Grenze

Zum Beispiel für Paginierung mit der Abfrage sieht aus wie

Select * from table Limit 5 Offset 0 

Make-Logik in PHP, Anzahl der Produkte erhalten und diese beiden Werte für die Paginierung

ändern
+0

Das funktioniert nicht. Es gibt kein Problem in dem Paginierungscode oder der while-Schleife, da es für das andere Sortiersystem funktioniert. Ich glaube, dass es ein Problem mit den Variablen gibt. Ich bin jedoch verwirrt, weil ich einen Wert von 11 bekomme –