Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/05/2011, 10h49   #1
Futur Membre du Club
 
Femme Amina
Etudiante
Inscription : avril 2011
Messages : 16
Détails du profil
Informations personnelles :
Nom : Femme Amina
Localisation : Tunisie

Informations professionnelles :
Activité : Etudiante

Informations forums :
Inscription : avril 2011
Messages : 16
Points : 15
Points : 15
Par défaut Affichage page par page PHP MySQL

Bonjour,
Je suis entrain de créer un logiciel de gestion de centre de formation avec php4 et MySql.
quand le responsable veut consulter la liste des formations, on veut que 10 formations s'affichent par page et en cliquant sur un bouton suivant 10 autres formations s'affichent, malhereusement j'arrive pas a faire cette procédure (toutes les formations s'affichent em méme temps).
voila mon code:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
 
 
 
 
$result=mysql_query("select * from theme");
while($donnees=mysql_fetch_array($result))
{
 
 
echo"<tr>";
echo "<td>".$donnees['code_th']."</td>";
echo "<td>".$donnees['libelle']."</td>";
echo "<td>".$donnees['vh']."</td>";
echo "<td>".$donnees['prix']."</td>";
?>
Qui a une idée et peut m'aider SVP.
Merci d'avance
Hamnatouch est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2011, 11h16   #2
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 823
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

Informations professionnelles :
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2005
Messages : 2 823
Points : 3 449
Points : 3 449
Mettons que le script affichant les formations s'appelle formations.php
Mettons que tu veuilles afficher des pages de 10 formations
Mettons que ce script accepte un argument GET page indiquant le n° de la page à afficher
L'appel à la 1re page sera de la forme formations.php?page=1, à la 2nde page formations.php?page=2, etc.

La requête ci-dessous extrait de ta BdD les 10 formations de la page appelée :

Code :
1
2
3
4
5
6
$formationsParPage = 10 ;
$offset = ($_GET['page'] - 1) * $formationsParPage ;
$sql = 'SELECT ALL id, nom '
     . 'FROM formations '
     . 'ORDER BY nom ASC '
     . "LIMIT $offset, $formationsParPage" ;
LIMIT = on extrait $formationsParPage formations à partir de la formation n° $offset.
Doc MySQL sur LIMIT : http://dev.mysql.com/doc/refman/5.0/fr/select.html

Pour générer le lien vers la page suivante :

Code :
<a href="formations.php?page=<?php echo $_GET['page'] + 1 ?>">Page suivante</a>
Vers la page précédente :

Code :
<a href="formations.php?page=<?php echo $_GET['page'] - 1 ?>">Page précédente</a>
Voilà, le gros y est, t'as plus qu'à tester et peaufiner ;-)
__________________
Un problème exposé clairement est déjà à moitié résolu
Keep It Smart and Simple
Séb. est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 09/05/2011, 11h40   #3
Futur Membre du Club
 
Femme Amina
Etudiante
Inscription : avril 2011
Messages : 16
Détails du profil
Informations personnelles :
Nom : Femme Amina
Localisation : Tunisie

Informations professionnelles :
Activité : Etudiante

Informations forums :
Inscription : avril 2011
Messages : 16
Points : 15
Points : 15
Merci bien Séb,
mais un erreur qui s'affiche dans cette ligne:

Code :
$offset = ($_GET['page'] - 1) * $formationsParPage ;
l'erreur est le suivant:

Citation:
Notice: Undefined index: page in C:\Program Files\EasyPHP-5.3.3.1\www\bptc\liste_formation.php on line 89
Hamnatouch est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2011, 11h42   #4
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 823
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

Informations professionnelles :
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2005
Messages : 2 823
Points : 3 449
Points : 3 449
Citation:
L'appel à la 1re page sera de la forme formations.php?page=1


Peaufiner c'est aussi prendre en compte ce genre de situation.
__________________
Un problème exposé clairement est déjà à moitié résolu
Keep It Smart and Simple
Séb. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2011, 12h08   #5
Membre du Club
 
Homme
Développeur Web
Inscription : avril 2011
Messages : 36
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : avril 2011
Messages : 36
Points : 55
Points : 55
Bonjour,

J'ajouterais le fait de tester si le paramètre existe dans le cas où une personne arriverait sur la page sans avoir cliqué sur un lien, ou qu'un lien soit mal formé. ce qui donnerait :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$formationsParPage = 10 ;
$page = 1;
// On test si la variable existe
if (isset($_GET['page'])) {
     // On test si c'est un entier
     if(is_int($_GET['page'])) {
          $page = $_GET['page'];
     }
}
$offset = ($page - 1) * $formationsParPage ;
$sql = 'SELECT ALL id, nom '
     . 'FROM formations '
     . 'ORDER BY nom ASC '
     . "LIMIT $offset, $formationsParPage" ;
et donc le lien vers la page suivante donnerait ceci :
Code :
<a href="formations.php?page=<?php echo $page + 1 ?>">Page suivante</a>
La page précédente :
Code :
<a href="formations.php?page=<?php echo $page - 1 ?>">Page précédente</a>
westdigit est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2011, 11h35   #6
Futur Membre du Club
 
Femme Amina
Etudiante
Inscription : avril 2011
Messages : 16
Détails du profil
Informations personnelles :
Nom : Femme Amina
Localisation : Tunisie

Informations professionnelles :
Activité : Etudiante

Informations forums :
Inscription : avril 2011
Messages : 16
Points : 15
Points : 15
Merci les gars tout est claire maitenant.
Ca marche
Hamnatouch est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h01.


 
 
 
 
Partenaires

Hébergement Web