2011-09-29 5 views
3

J'ai un problème avec un script que je crée. J'utilise l'instruction PHP/SQL ORDER BY. J'ai un topsite où j'utiliser le script ci-dessousMySQL Order/limit Par numéro

$sql = "SELECT * FROM topsites WHERE categorie = '".$_GET['c']."' ORDER BY in DESC, out DESC LIMIT ".$perpage.""; 

Et je dois savoir s'il y a un moyen que je peux créer des pages différentes, dire la première page est 1-50, la deuxième est 50-100

I J'ai cherché google pour une solution à cette question, mais je n'arrive pas à trouver quelque chose.

+0

je vois SQLi dans votre avenir. –

+0

Cela n'a rien à voir avec PHP. c'est une chose MySQL. Lisez les docs sur la syntaxe de sélection de MySQL (http://dev.mysql.com/doc/refman/5.5/en/select.html). il détaille comment utiliser la clause LIMIT pour de telles choses. De plus, 'in' est un mot réservé mysql qui se terminera probablement par des erreurs de syntaxe lorsque vous exécuterez cette requête, sans parler du trou d'injection SQL béant. –

+0

[injection sql ... bla, bla, Bobby Tables, chaîne d'échappement ....] (http://php.net/manual/fr/function.mysql-real-escape-string.php) – cwallenpoole

Répondre

5
SELECT .... LIMIT CountToSkip, CountToSelect 

La première page sera LIMIT 0,50, LIMIT 50,50 le deuxième, etc.

0

La technique que vous recherchez est appelé pagination. Vous aurez probablement besoin d'utiliser l'opérateur LIMIT de SQL pour y parvenir, mais il existe de nombreux liens sur le Web pour vous diriger vers les ressources de pagination PHP.

0

LIMIT 0,100, LIMIT 100,100

assez facile.