Requete Mysql

Signaler
Messages postés
80
Date d'inscription
dimanche 23 février 2003
Statut
Membre
Dernière intervention
16 juin 2008
-
Messages postés
80
Date d'inscription
dimanche 23 février 2003
Statut
Membre
Dernière intervention
16 juin 2008
-
J'ai trouvé un code tres bien ! Mais le probleme et que le resultats affiche tout les pages !

<?
// Nbr de résultat par page
$limit = 20;

// Votre requète d'affichage de vos résultats
// Vous utiliserez donc $query pour faire vos boucles !
$query = "SELECT * FROM table LIMIT $debut,$limit";

// Requète récupérant le nombre de résultat total
$req = MYSQL_QUERY("SELECT * FROM table");
// On récupère le nombre de ligne
$nbrtotal = MYSQL_NUMROWS($req);

// Si $page est égal à rien, $debut est égal à 0
(!$HTTP_GET_VARS[page] ? $debut = 0 : $debut = $HTTP_GET_VARS[page]);

// Si nombre de page est plus grand à la limite on affiche le menu
if ($nbrtotal > $limit) {
echo ' Pages : ';
// On divise le nombre de page avec la limite
$forpage = $nbrtotal/$limit;
// On affiche les numéros des pages avec les boucles
for ($i = 0; $i < $forpage; $i++) {
$p=$i*$limit;
$n=$i+1;
echo " [ ".$n."] ";
}
// Fin de boucle
}
// Fin du menu
?>

Quand il y a beaucoup de page ca affiche (avec 1896 total resultatd) :

Pages [1] 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95

Moi j'aimerais avoir quelque chose comme ca :

Pages [1] 2 3 ... 93 94 95

Es ce que c'est possible ?
Si oui comment ?

6 réponses

Messages postés
2268
Date d'inscription
mercredi 27 novembre 2002
Statut
Membre
Dernière intervention
13 septembre 2013
3
Salut!
J'ai un code qui t'affiche les 5 avant et les 5 après, tu prends?

@++

R@f

"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"

www.progforum.net: Aide en programmation!
Messages postés
80
Date d'inscription
dimanche 23 février 2003
Statut
Membre
Dernière intervention
16 juin 2008

oui !!
merci
Messages postés
2268
Date d'inscription
mercredi 27 novembre 2002
Statut
Membre
Dernière intervention
13 septembre 2013
3
Hello!
?
// Nbr de résultat par page
$limit = 20;
// nombre de pages avant et après courant
$nb_affichage = 5;

// Si $page est égal à rien, $page = 1
$courant = empty($_GET['page']) ? 1 : $_GET['page'];
// $start en fonmction de $page
$start = ($courant - 1) * $limit;

// Votre requète d'affichage de vos résultats
// Vous utiliserez donc $query pour faire vos boucles !
$query = "SELECT * FROM table LIMIT $start,$limit";

// Requète récupérant le nombre de résultat total
$req = MYSQL_QUERY("SELECT * FROM table");
// On récupère le nombre de ligne
$nb_pages = ceil(MYSQL_NUMROWS($req) / $limit);

// nombre de page avant $courant
$avant = $courant > ($nb_affichage + 1) ? $nb_affichage : $courant - 1;
// nombre de page après courant
$apres = $courant <= $nb_pages - $nb_affichage ? $nb_affichage : $nb_pages - $courant;
?> 

// précédante
if($courant > 1)
echo '[index.php?page=' . $courant - 1 . ' Précédente]  ';

// pages avant
for($i = $courant - $avant; $i < $courant; $i++)
echo echo '[index.php?page=' . $i . ' ' $i . ']  ';

// page courante
echo '' . $courant . '  ';

// page après
for($i = $courant + 1; $i <= $courant + $apres; $i++)
echo '[index.php?page=' . $i . ' ' $i . ']  ';

// suivante
if($courant < $nb_pages)
echo '[index.php?page=' . $courant + 1 . ' Suivante]  ';


Voila, je viens de te l'adapter, je te garantit pas un sans faute, ;-)...

Si il y a un problème, hésites pas!

@++

R@f

"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"

www.progforum.net: Aide en programmation!
Messages postés
80
Date d'inscription
dimanche 23 février 2003
Statut
Membre
Dernière intervention
16 juin 2008

Merci
mais tu à fait un avec des fautes !! :shy)
Messages postés
80
Date d'inscription
dimanche 23 février 2003
Statut
Membre
Dernière intervention
16 juin 2008

<?
// Nbr de résultat par page
$limit = 20;
// nombre de pages avant et après courant
$nb_affichage = 5;

// Si $page est égal à rien, $page = 1
$courant = empty($_GET['page']) ? 1 : $_GET['page'];
// $start en fonmction de $page
$start = ($courant - 1) * $limit;

// Votre requète d'affichage de vos résultats
// Vous utiliserez donc $query pour faire vos boucles !
$query = "SELECT * FROM forum2 LIMIT $start,$limit";

// Requète récupérant le nombre de résultat total
$req = MYSQL_QUERY("SELECT * FROM forum2");
// On récupère le nombre de ligne
$nb_pages = ceil(MYSQL_NUMROWS($req) / $limit);

// nombre de page avant $courant
$avant = $courant > ($nb_affichage + 1) ? $nb_affichage : $courant - 1;
// nombre de page après courant
$apres = $courant <= $nb_pages - $nb_affichage ? $nb_affichage : $nb_pages - $courant;
?>

<?
// précédante
if($courant > 1)
echo '[index.php?page=' . $courant - 1 . ' Précédente] ';

// pages avant
for($i = $courant - $avant; $i < $courant; $i++)
echo '[index.php?page=$i $i]';

// page courante
echo '' . $courant . ' ';

// page après
for($i = $courant + 1; $i <= $courant + $apres; $i++)
echo '[index.php?page=' . $i . ' $i] ';

// suivante
if($courant < $nb_pages)
echo '[index.php?page=' . $courant + 1 . ' Suivante] ';
?>

Voilouj'en enlevé qq petites fautes mais ca ne fonctionne tj pas !
Messages postés
80
Date d'inscription
dimanche 23 février 2003
Statut
Membre
Dernière intervention
16 juin 2008

OUFF ! J'ai fini mais il y a encore des bugs et je ne sais pas comment les resoudre ... Mais MERCI 1000 Fois

Il faut le debugger maintenant ...

<?
// Nbr de résultat par page
$limit = 1;
// nombre de pages avant et après courant
$nb_affichage = 5;

$db = mysql_connect('localhost', 'root', '');  // 1 
mysql_select_db('site',$db);                    // 2 

// Si $page est égal à rien, $page = 1
$courant = empty($_GET['page']) ? 1 : $_GET['page'];
// $start en fonmction de $page
$start = ($courant - 1) * $limit;

// Votre requète d'affichage de vos résultats
// Vous utiliserez donc $query pour faire vos boucles !
$query = "SELECT * FROM forum2 LIMIT $start,$limit";

// Requète récupérant le nombre de résultat total
$req = MYSQL_QUERY("SELECT * FROM forum2");
// On récupère le nombre de ligne
$nb_pages = ceil(MYSQL_NUMROWS($req) / $limit);

// nombre de page avant $courant
$avant = $courant > ($nb_affichage + 1) ? $nb_affichage : $courant - 1;
// nombre de page après courant
$apres = $courant <= $nb_pages - $nb_affichage ? $nb_affichage : $nb_pages - $courant;
?> 

<?
// précédante
if($courant > 1)
$courant =$courant - 1;
echo "[2.php?page='.$i.' '.$i.']';

// page courante
echo ' '.$courant.' ';

// page après
for($i = $courant + 1; $i <= $courant + $apres; $i++)
echo "$i ";

// suivante
if($courant < $nb_pages)
$courant =$courant + 2;
echo "  Suivante ";
?>