Requete Mysql

cs_BeCaSiNe Messages postés 80 Date d'inscription dimanche 23 février 2003 Statut Membre Dernière intervention 16 juin 2008 - 24 juin 2004 à 20:22
cs_BeCaSiNe Messages postés 80 Date d'inscription dimanche 23 février 2003 Statut Membre Dernière intervention 16 juin 2008 - 25 juin 2004 à 16:24
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

coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 4
25 juin 2004 à 09:29
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!
0
cs_BeCaSiNe Messages postés 80 Date d'inscription dimanche 23 février 2003 Statut Membre Dernière intervention 16 juin 2008
25 juin 2004 à 10:31
oui !!
merci
0
coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 4
25 juin 2004 à 11:27
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!
0
cs_BeCaSiNe Messages postés 80 Date d'inscription dimanche 23 février 2003 Statut Membre Dernière intervention 16 juin 2008
25 juin 2004 à 12:04
Merci
mais tu à fait un avec des fautes !! :shy)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_BeCaSiNe Messages postés 80 Date d'inscription dimanche 23 février 2003 Statut Membre Dernière intervention 16 juin 2008
25 juin 2004 à 16:11
<?
// 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 !
0
cs_BeCaSiNe Messages postés 80 Date d'inscription dimanche 23 février 2003 Statut Membre Dernière intervention 16 juin 2008
25 juin 2004 à 16:24
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 ";
?>

0
Rejoignez-nous