LIMIT (?)

Eléphant du PHP | 257 Messages

09 avr. 2006, 12:03

Bjour à tous

est-ce que ceci est juste ?
// on crée la requête SQL 
$sql = 'SELECT ID,nom,lieu,adresse,metro,tel,mail,site,info FROM ecoles_tbl LIMIT 0 , 10;
parce que voici le message ... d'erreur :
Parse error: parse error in /var/www/xxxxxxx/agences.php on line 13

naturellement je souhaite limiter l'affichage à 10 par page !

:oops:

Eléphant du PHP | 257 Messages

09 avr. 2006, 12:15

bon ben j'ai trouvé il y manquait un : ' :oops: ah la la

mais now j'ai besoin de faire un lien pour les pages suivantes et g ne sais pas du tout comment faire ... :oops:

Je dis d'avance merci à celui qui m'éclairera :lol:
:cry:

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

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 :)

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

09 avr. 2006, 12:38


/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 257 Messages

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:

Eléphant du PHP | 257 Messages

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:

Eléphant du PHP | 257 Messages

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 :?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

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 :)

Eléphant du PHP | 257 Messages

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 :?

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

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:

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 257 Messages

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:

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

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>

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 257 Messages

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:

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

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:

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

09 avr. 2006, 22:40

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