LIMIT (?)

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : LIMIT (?)

par alexdarcy » 10 avr. 2006, 16:06

ok c'est bon :
<a 
href="?numeroPage='.$numeroPagePrecedent.'">Précédent</a> 
<a href="?numeroPage='.$numeroPageSuivant.'">Suivant</a>
:wink:

par alexdarcy » 10 avr. 2006, 15:25

mouai
<a href="?numeroPage=<?=$numeroPagePrecedent?>">Précédent</a> 
<a href="?numeroPage=<?=$numeroPageSuivant?>">Suivant</a>
variables :
$numeroPagePrecedent = $numeroPage - 1; 
$numeroPageSuivant = $numeroPage + 1;
je n'sais po :oops:

??

par Ryle » 09 avr. 2006, 22:40

lol, et c'est pas faute d'avoir mis des noms de variables explicites ;)

par Truc » 09 avr. 2006, 16:58

Hum hum ce n'est pas bien de copier des scripts sans savoir ce qu'il font [-(

Tu as repris les lignes proposées par Ryle et donc supposé comprendre ce qu'elles représentent notamment:
$numeroPagePrecedent = $numeroPage - 1;
$numeroPageSuivant = $numeroPage + 1; 
:wink:

par alexdarcy » 09 avr. 2006, 15:35

disons que ce n'est pas une grande erreur alors tu pourras très bien trouver seul je guidde seulement :wink:

quelle est la varaible qui permet de dire s'il faut aller sur une page ?
la quelle sert pour les pages suivantes et précédentes ? (elle y sont dans ton code)

et donc quelle sont les variables qui devraient se trouver dans le lien ?
<a href="?numeroPage='.ICI_VARIABLE_PAGE.'">Suivant</a>
:oops:

par Truc » 09 avr. 2006, 15:05

disons que ce n'est pas une grande erreur alors tu pourras très bien trouver seul je guidde seulement :wink:

quelle est la varaible qui permet de dire s'il faut aller sur une page ?
la quelle sert pour les pages suivantes et précédentes ? (elle y sont dans ton code)

et donc quelle sont les variables qui devraient se trouver dans le lien ?
<a href="?numeroPage='.ICI_VARIABLE_PAGE.'">Suivant</a>

par alexdarcy » 09 avr. 2006, 14:59

Oui truc j'ai bien lu le sujet de cyrano, mais bon pour moi et mes connaissances pour l'instant c'est encore bien trop compliqué mumm :oops:
Il y a pourtant des commentaires très bien fait.

Pour faire des tests sur ta BD tu n'as qu'à changer les données de la requete simple substitution :wink:


Pour ton code actuel regarde ce que tu passes dans le lien:
<a href="?numeroPage='.$data['numeroPageSuivant'].'">Suivant</a>
est-ce que $data['numeroPageSuivant'] est une donnée de la BD ? :wink:
Non !!! comment ça ?

:cry:

par Truc » 09 avr. 2006, 14:51

Oui truc j'ai bien lu le sujet de cyrano, mais bon pour moi et mes connaissances pour l'instant c'est encore bien trop compliqué mumm :oops:
Il y a pourtant des commentaires très bien fait.

Pour faire des tests sur ta BD tu n'as qu'à changer les données de la requete simple substitution :wink:


Pour ton code actuel regarde ce que tu passes dans le lien:
<a href="?numeroPage='.$data['numeroPageSuivant'].'">Suivant</a>
est-ce que $data['numeroPageSuivant'] est une donnée de la BD ? :wink:

par alexdarcy » 09 avr. 2006, 14:18

toujours :
http://www.fleck-von-fleckenstein.com/a ... umeroPage=

voici tt le script :
<?php 
// on se connecte à MySQL 
$db = mysql_connect('localhost', 'ecole', 'xxxx'); 

// on sélectionne la base 
mysql_select_db('ecole',$db); 

$numeroPage = isSet($_GET['numeroPage']) ? $_GET['numeroPage'] : 0; 
$numeroPagePrecedent = $numeroPage - 1; 
$numeroPageSuivant = $numeroPage + 1;
// numero de la page à afficher, commencer à 0 
$nbElementParPage = 10; // nombre d'éléments par page 
$indexAffiche = $numeroPage * $nbElementParPage; // index à partir du quel on va afficher les éléments. 
//Donc en fonction du numero de la page, tu obtiendras 0*10 = 0; 1*10=10; 2*10=20 etc.

// on crée la requête SQL 
$sql = "SELECT ID,nom,lieu,adresse,metro,tel,mail,site,info FROM ecoles_tbl LIMIT $indexAffiche , 
$nbElementParPage";  

// on envoie la requête 
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); 

// on fait une boucle qui va faire un tour pour chaque enregistrement 
while($data = mysql_fetch_assoc($req)) 
{ 
    // on affiche les informations de l'enregistrement en cours 
    echo '<table border="0" cellpadding="0" cellspacing="0" width="100%">
  <tr>
    <td width="100%" align="center">
<b>'.$data['nom'].'</a><br>'.$data['lieu'].'<br></b>Tel : '.$data['adresse'].'<br>Fax : 
'.$data['metro'].'<br></b><b><i>AGENTS : 
<br>'.$data['tel'].'<br>'.$data['mail'].'<br>'.$data['site'].'<br>'.$data['info'].'<br><br><a 
href="?numeroPage='.$data['numeroPagePrecedent'].'">Précédent</a> 
<a href="?numeroPage='.$data['numeroPageSuivant'].'">Suivant</a></b></td>
  </tr>
</table>'; 
} 

// on ferme la connexion à mysql 
mysql_close(); 
?> 
mumm :?

par Ryle » 09 avr. 2006, 14:03

Difficile de t'éclairer ne sachant pas ce qu'est ton $data :)

Le truc, c'est juste de proposer les pages suivantes et précédentes en fonction de la page en cours :
<?
$numeroPage = isSet($_GET['numeroPage']) ? $_GET['numeroPage'] : 0;

$numeroPagePrecedent = $numeroPage - 1;
$numeroPageSuivant = $numeroPage + 1;
// jusque là, logique ;)
?>

Il te suffit donc de faire deux liens :
<a href="?numeroPage=<?=$numeroPagePrecedent?>">Précédent</a>
<a href="?numeroPage=<?=$numeroPageSuivant?>">Suivant</a>
Et le tour est joué.

Ensuite tu agrémentes un peu, si $numeroPage est égal à 0, on est sur la première page, donc pas de "précédent" à afficher. De même, si $numeroPage est égal à la dernière page (chose que l'on sait en appliquant un calcul super compliqué dans le genre "Nombre de message total / Nombre de message par page"), tu n'affiches pas le lien "suivant"..

Et puis entre les deux, si tu as envie de t'amuser, tu peux faire un lien sur chaque page, avec une boucle :
for ($i=0; $i<=$nombreDePageTotal; $i++) {
  echo '<a href="?numeroPage='. $i .'">'.($i+1).'</a> ';
}
A décorer avec des virgules, des troispetitspoints, une condition pour pas avoir de lien sur la page en cours, etc. Si tu as bien compris le principe, le tutorial t'apportera plein de trucs en plus :)

par alexdarcy » 09 avr. 2006, 13:34

si je mets ça comme ça :
<a 
href="agences.php?numeroPage='.$data['numeroPage'].'"><b>'.$data['numeroPage'].' suivant</a>
le lien suivant est :
http://www.fleck-von-fleckenstein.com/a ... umeroPage=

:oops:
le numero de page ne s'imprime po :?

par alexdarcy » 09 avr. 2006, 12:57

hé hé, comme quoi, suffit parfois de lire les messages d'erreur pour comprendre ce qui ne fonctionne pas ;)

Pour ta gestion par page, il suffit de modifier légèrement ta requête :
$numeroPage = isSet($_GET['numeroPage']) ? $_GET['numeroPage'] : 0; // numero de la page à afficher, commencer à 0
$nbElementParPage = 10; // nombre d'éléments par page
$indexAffiche = $numeroPage * $nbElementParPage; // index à partir du quel on va afficher les éléments. 
//Donc en fonction du numero de la page, tu obtiendras 0*10 = 0; 1*10=10; 2*10=20 etc.

$sql = "SELECT ID,nom,lieu,adresse,metro,tel,mail,site,info FROM ecoles_tbl LIMIT $indexAffiche , $nbElementParPage"; // juste une modif sur le Limit pour prendre en compte les variables
// j'ai remplacé les ' par des " par habitude, vu que dans une requête (insert ou update) on utilise les apostrophes pour délimiter les chaines de caractères :)
maintenant il ne te reste plus qu'à gérer les liens pour que quand tu sois sur la page 3 il te proposes un lien précédent vers ?numeroPage=2 et un lien suivant vers ?numeroPage=4 :)
Oui Ryle ça fonctionne très bien :lol: mais mais je skotch sur les liens suivant et précèdent ... peux tu m'en dire plus :roll:

par alexdarcy » 09 avr. 2006, 12:54

Oui truc j'ai bien lu le sujet de cyrano, mais bon pour moi et mes connaissances pour l'instant c'est encore bien trop compliqué mumm :oops:

par Truc » 09 avr. 2006, 12:38

par Ryle » 09 avr. 2006, 12:27

hé hé, comme quoi, suffit parfois de lire les messages d'erreur pour comprendre ce qui ne fonctionne pas ;)

Pour ta gestion par page, il suffit de modifier légèrement ta requête :
$numeroPage = isSet($_GET['numeroPage']) ? $_GET['numeroPage'] : 0; // numero de la page à afficher, commencer à 0
$nbElementParPage = 10; // nombre d'éléments par page
$indexAffiche = $numeroPage * $nbElementParPage; // index à partir du quel on va afficher les éléments. 
//Donc en fonction du numero de la page, tu obtiendras 0*10 = 0; 1*10=10; 2*10=20 etc.

$sql = "SELECT ID,nom,lieu,adresse,metro,tel,mail,site,info FROM ecoles_tbl LIMIT $indexAffiche , $nbElementParPage"; // juste une modif sur le Limit pour prendre en compte les variables
// j'ai remplacé les ' par des " par habitude, vu que dans une requête (insert ou update) on utilise les apostrophes pour délimiter les chaines de caractères :)
maintenant il ne te reste plus qu'à gérer les liens pour que quand tu sois sur la page 3 il te proposes un lien précédent vers ?numeroPage=2 et un lien suivant vers ?numeroPage=4 :)