Accueil > > > AFFICHER LE RÉSULTAT D'UNE REQUÊTE SQL SUR PLUSIEURS PAGE
AFFICHER LE RÉSULTAT D'UNE REQUÊTE SQL SUR PLUSIEURS PAGE
Information sur la source
Description
ce premier petit script que je distribues permet d'afficher le résultat d'une requête sql sur plusieurs pages selon le nombre d'enregistrements que vous choisissez par page, on basculant entre les pages par les deux lien "Suivant" et "précedent" 1/je sais que estétiquement c'est pas jolie mais l'essentiel du script est bien fonctionnelle vous pouvez mettre on place un tableau pour afficher dedans les enregistrement comme vous pouvez changer les liens suivant et précédent par des bouton 2/la base sur la quel j'ai travaillé contient 6 champs id / nom / prenom / adresse / phone / email 3/ le code source contient le code de la base / page index.php pour remplir la page / page liste.php pour afficher les enregistrement
Source
- <b> *** code de la base ***</b>
-
- - Base de données: `agenda`
- --
-
- -- --------------------------------------------------------
-
- --
- -- Structure de la table `contact`
- --
-
- CREATE TABLE IF NOT EXISTS `contact` (
- `id` int(8) NOT NULL AUTO_INCREMENT,
- `nom` varchar(20) NOT NULL,
- `prenom` varchar(20) NOT NULL,
- `adresse` varchar(100) NOT NULL,
- `phone` varchar(20) NOT NULL,
- `email` varchar(30) NOT NULL,
- PRIMARY KEY (`id`)
- ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=10 ;
-
- <b>*** code index.php ***</b>
-
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>Document sans titre</title>
- </head>
-
-
- <body>
- <p><a href="liste.php?page=1">LISTE</a></p>
- <table width="782" border="0" cellpadding="0" cellspacing="4">
- <form name="fcontact" method="post" action="index.php">
- <tr>
- <td width="267"><div align="right">Nom :</div></td>
- <td width="503"><label>
- <input type="text" name="nom" id="textfield" />
- </label></td>
- </tr>
- <tr>
- <td><div align="right">Prenom :</div></td>
- <td><label>
- <input type="text" name="prenom" id="textfield2" />
- </label></td>
- </tr>
- <tr>
- <td><div align="right">Adresse : </div></td>
- <td><label>
- <input type="text" name="adresse" id="textfield3" />
- </label></td>
- </tr>
- <tr>
- <td><div align="right">Tel :</div></td>
- <td><label>
- <input type="text" name="tel" id="textfield4" />
- </label></td>
- </tr>
- <tr>
- <td><div align="right">Email :</div></td>
- <td><label>
- <input type="text" name="email" id="textfield5" />
- </label></td>
- </tr>
- <tr>
- <td> </td>
- <td><label>
- <input type="submit" name="save" id="button" value="Envoyer" />
- </label></td>
- </tr>
- </form>
- </table>
- <p> </p>
- <?php
- if (isset($_POST['save']))
- {
- mysql_connect('localhost','root');
- mysql_select_db('agenda');
-
- $nom=$_POST['nom'];
- $prenom=$_POST['prenom'];
- $adresse=$_POST['adresse'];
- $tel=$_POST['tel'];
- $email=$_POST['email'];
-
- $sql="insert into contact (`nom`,`prenom`,`adresse`,`phone`,`email`) values('$nom','$prenom','$adresse','$tel','$email')";
- $req=mysql_query($sql);
-
- }
-
- ?>
- </body>
- </html>
-
- <b>*** code liste.php **** </b>
-
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>Document sans titre</title>
- </head>
-
-
- <body>
- <?php
- // Afficher le résultat d'une requête sql sur plusieurs page
-
- //connexion au serveur puis choix de la base
- mysql_connect('localhost','root');
- mysql_select_db('agenda');
- //la requête que j'ai choisi va sélectionner tout le contenue de la base
- //j'exécute ici la requête sans LIMIT pour extraire le nombre total d'enregistrement
- $sql1="select * from contact";
- $req1=mysql_query($sql1);
- $nbtotal=mysql_num_rows($req1);
- //$limite est le nb d'enregistrement par page ,
- $limite=3;
- $page=$_GET['page']; //$_get['page'] est une variable qui passera dans le lien , elle commence à 1 donc pour accéder par exemple à la page liste.php il faut ajouter au lien ?page=1
- $debut=($page-1)*$limite; // $debut à partir de quel enregistrement commence la selection dans notre cas si $page=1 $debut=0 / si $page=2 $debut=(2-1)*3 = 3
- $sql="select * from contact LIMIT $debut,$limite"; //requête pour sélectionner les enregistrements par lot on commençant par début
- $req=mysql_query($sql); // exécution de la requête
-
- while($data=mysql_fetch_array($req)) // parcourir le résultat de la requête
- {
- echo $data['nom']." ".$data['prenom']." ".$data['adresse']." ".$data['phone']." ".$data['email']."</br></br>"; //affichage des enregistrements
- }
- $nbpage=$nbtotal/$limite; //calcule de nombre de page
-
-
- if (($page==1) && ($nbpage > 1)) // si on est à la première page et que le nb de pages pour afficher les enregistrement est supérieure à 1 on affiche seulement le lien "suivant >>" qui peut être un bouton
- {
- $next=$page+1;
- echo "<a href='liste.php?page=$next'>SUIVANT >></a>";
- $_SESSION['pageencour']=2;
- }
- else
- {
- if ($page < $nbpage ) // si $page est inférieur au nb totale des page donc on affiche suivant>> et <<precédent
- {
- $prev=$page-1;
- $next=$page+1;
- echo "<a href='liste.php?page=$prev'><< précédent</a> ";
- echo " <a href='liste.php?page=$next'>SUIVANT >></a>";
- }
- else
- {
- if (($page >= $nbpage) && ($nbpage > 1))// si on n'est à la dernière page et que le nb totale de page est sup à on affiche seulement <<précédent
- {
- $prev=$page-1;
- echo "<a href='liste.php?page=$prev'><< precedent </a>";
- }
- }
- }
- ?>
- </body>
- </html>
<b> *** code de la base ***</b>
- Base de données: `agenda`
--
-- --------------------------------------------------------
--
-- Structure de la table `contact`
--
CREATE TABLE IF NOT EXISTS `contact` (
`id` int(8) NOT NULL AUTO_INCREMENT,
`nom` varchar(20) NOT NULL,
`prenom` varchar(20) NOT NULL,
`adresse` varchar(100) NOT NULL,
`phone` varchar(20) NOT NULL,
`email` varchar(30) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=10 ;
<b>*** code index.php ***</b>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Document sans titre</title>
</head>
<body>
<p><a href="liste.php?page=1">LISTE</a></p>
<table width="782" border="0" cellpadding="0" cellspacing="4">
<form name="fcontact" method="post" action="index.php">
<tr>
<td width="267"><div align="right">Nom :</div></td>
<td width="503"><label>
<input type="text" name="nom" id="textfield" />
</label></td>
</tr>
<tr>
<td><div align="right">Prenom :</div></td>
<td><label>
<input type="text" name="prenom" id="textfield2" />
</label></td>
</tr>
<tr>
<td><div align="right">Adresse : </div></td>
<td><label>
<input type="text" name="adresse" id="textfield3" />
</label></td>
</tr>
<tr>
<td><div align="right">Tel :</div></td>
<td><label>
<input type="text" name="tel" id="textfield4" />
</label></td>
</tr>
<tr>
<td><div align="right">Email :</div></td>
<td><label>
<input type="text" name="email" id="textfield5" />
</label></td>
</tr>
<tr>
<td> </td>
<td><label>
<input type="submit" name="save" id="button" value="Envoyer" />
</label></td>
</tr>
</form>
</table>
<p> </p>
<?php
if (isset($_POST['save']))
{
mysql_connect('localhost','root');
mysql_select_db('agenda');
$nom=$_POST['nom'];
$prenom=$_POST['prenom'];
$adresse=$_POST['adresse'];
$tel=$_POST['tel'];
$email=$_POST['email'];
$sql="insert into contact (`nom`,`prenom`,`adresse`,`phone`,`email`) values('$nom','$prenom','$adresse','$tel','$email')";
$req=mysql_query($sql);
}
?>
</body>
</html>
<b>*** code liste.php **** </b>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Document sans titre</title>
</head>
<body>
<?php
// Afficher le résultat d'une requête sql sur plusieurs page
//connexion au serveur puis choix de la base
mysql_connect('localhost','root');
mysql_select_db('agenda');
//la requête que j'ai choisi va sélectionner tout le contenue de la base
//j'exécute ici la requête sans LIMIT pour extraire le nombre total d'enregistrement
$sql1="select * from contact";
$req1=mysql_query($sql1);
$nbtotal=mysql_num_rows($req1);
//$limite est le nb d'enregistrement par page ,
$limite=3;
$page=$_GET['page']; //$_get['page'] est une variable qui passera dans le lien , elle commence à 1 donc pour accéder par exemple à la page liste.php il faut ajouter au lien ?page=1
$debut=($page-1)*$limite; // $debut à partir de quel enregistrement commence la selection dans notre cas si $page=1 $debut=0 / si $page=2 $debut=(2-1)*3 = 3
$sql="select * from contact LIMIT $debut,$limite"; //requête pour sélectionner les enregistrements par lot on commençant par début
$req=mysql_query($sql); // exécution de la requête
while($data=mysql_fetch_array($req)) // parcourir le résultat de la requête
{
echo $data['nom']." ".$data['prenom']." ".$data['adresse']." ".$data['phone']." ".$data['email']."</br></br>"; //affichage des enregistrements
}
$nbpage=$nbtotal/$limite; //calcule de nombre de page
if (($page==1) && ($nbpage > 1)) // si on est à la première page et que le nb de pages pour afficher les enregistrement est supérieure à 1 on affiche seulement le lien "suivant >>" qui peut être un bouton
{
$next=$page+1;
echo "<a href='liste.php?page=$next'>SUIVANT >></a>";
$_SESSION['pageencour']=2;
}
else
{
if ($page < $nbpage ) // si $page est inférieur au nb totale des page donc on affiche suivant>> et <<precédent
{
$prev=$page-1;
$next=$page+1;
echo "<a href='liste.php?page=$prev'><< précédent</a> ";
echo " <a href='liste.php?page=$next'>SUIVANT >></a>";
}
else
{
if (($page >= $nbpage) && ($nbpage > 1))// si on n'est à la dernière page et que le nb totale de page est sup à on affiche seulement <<précédent
{
$prev=$page-1;
echo "<a href='liste.php?page=$prev'><< precedent </a>";
}
}
}
?>
</body>
</html>
Conclusion
j'attends vos critères ainsi que vos conseilles
Historique
- 18 juin 2009 13:50:04 :
- j'ai juste afficher en gras le début de chaque code
- 24 juin 2009 21:21:15 :
- Ajout d'image
Sources de la même categorie
Commentaires et avis
|
Derniers Blogs
L'INTERFACE NATURELLE DE WINDOWS PHONE 7 SERIESL'INTERFACE NATURELLE DE WINDOWS PHONE 7 SERIES par odewit
La tendance est aux interfaces naturelles (NUI), et le keynote de Bill Buxton au MIX l'a bien souligné.
La charte graphique et ergonomique de Windows Phone 7 a donc été entièrement repensée en vue d'obtenir un maximum d'efficacité sur ce point. En re...
Cliquez pour lire la suite de l'article par odewit COMMENT MAPPER UNE VUE SQL SUR UNE COLLECTION DE COMPLEX TYPE?COMMENT MAPPER UNE VUE SQL SUR UNE COLLECTION DE COMPLEX TYPE? par Matthieu MEZIL
Avec EF, les vues doivent être mappées sur des entity types. Le problème c'est que les entity types doivent avoir une clé. Avec EF, nous avons les complex type qui n'ont pas de clé mais les vues ne peuvent pas être mappées dessus. Avec EF4, il est possibl...
Cliquez pour lire la suite de l'article par Matthieu MEZIL [WF4] UN BINDING ACTIVITY/ACTIVITYDESIGNER QUI PASSE MAL?[WF4] UN BINDING ACTIVITY/ACTIVITYDESIGNER QUI PASSE MAL? par JeremyJeanson
Certain d'entre vous on peut être vécu cette situation embarrassante après quelques temps passer avec WF4 : Au début avec mon " ActivityDesigner" , tout allait bien. Et puis un jour j'ai au des problèmes de " Binding" . Alors nous sommes allé sur le site ...
Cliquez pour lire la suite de l'article par JeremyJeanson
Logiciels
Academy System (10.9.4.0)ACADEMY SYSTEM (10.9.4.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods
|