par
sadeq » 17 mars 2005, 18:27
Je te propose alors de lire cet exemple, le code php est commenté
Bonne lecture.
La page principale : livres.php qui affiche l'index des lettres et cherche les livres correspondant à une lettre choisie.
<table width="100%">
<tr>
<td><A HREF="livres.php?lettre=A">A</A>
<td><A HREF="livres.php?lettre=P">P</A>
<td><A HREF="livres.php?lettre=V">V</A>
</table>
<hr>
<?
//Reception de la lettre choisie
$lettre = isset($_GET["lettre"]) ? $_GET["lettre"] : null;
if ($lettre != null){
//Chercher les livres dont le nom commence par la lettre choisie
$sql ="SELECT id, nom, description FROM livre WHERE nom LIKE '$lettre%' ORDER BY nom";
//connecter au serveur mysql
$serveur = mysql_connect("localhost","root","");
//ouvrir la base de données "biblio"
mysql_select_db ("biblio", $serveur);
//exécuter la requête
$resultat = mysql_query($sql, $serveur);
//tester si la requête a trouvé des livres
if (mysql_num_rows($resultat) <= 0) echo "Aucun livre!";
else {
//afficher la liste des livres trouvés
echo "<h3>Liste des livres</h3>
<table border=1><tr><th>Nom <th>Description";
//lire le resultat ligne par ligne
while ($ligne = mysql_fetch_assoc($resultat)){
$id = $ligne["id"];
$nom = $ligne["nom"];
$description = $ligne["description"];
//le champ "nom" est sous forme de lien hypertexte (au clic il envoi l'id)
echo "<tr>
<td><A HREF='page2.php?id=$id'>$nom</A>
<td>$description";
}
echo "</table>";
}
}else "Choisir une lettre";
?>
Et la page2.php : qui affiche la fiche livre
<?
//Reception de l'id d'un livre selectionné
$id = isset($_GET["id"]) ? $_GET["id"] : null;
if ($id != null){
//Chercher le livre de l'id choisi
$sql ="SELECT * FROM livre WHERE id = $id ";
//connecter au serveur mysql
$serveur = mysql_connect("localhost","root","");
//ouvrir la base de données "biblio"
mysql_select_db ("biblio", $serveur);
//exécuter la requête
$resultat = mysql_query($sql, $serveur);
//tester si la requête a trouvé des livres
if (mysql_num_rows($resultat) <= 0) echo "Aucun livre!";
else {
//lire le resultat qui ne contient qu'une ligne (pas besoin de boucle while)
$ligne = mysql_fetch_assoc($resultat);
$id = $ligne["id"];
$nom = $ligne["nom"];
$description = $ligne["description"];
$histoire = $ligne["histoire"];
//afficher l'dentité du livre trouvé
echo "<h3>Fiche livre</h3>
<table>
<tr><td>$nom
<tr><td>$description
<tr><td>$histoire
</table>";
}
}else "Choisir un id";
?>
La base de données mysql utilisée s'appelle "biblio" et contient une table appellée "livre" dont la structure est la suivante :
Code : Tout sélectionner
--
-- Structure de la table `livre`
--
CREATE TABLE `livre` (
`id` int(11) NOT NULL auto_increment,
`nom` varchar(30) NOT NULL default '',
`description` varchar(50) NOT NULL default '',
`histoire` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
Je te propose alors de lire cet exemple, le code php est commenté
Bonne lecture.
La page principale : livres.php qui affiche l'index des lettres et cherche les livres correspondant à une lettre choisie.
[php]<table width="100%">
<tr>
<td><A HREF="livres.php?lettre=A">A</A>
<td><A HREF="livres.php?lettre=P">P</A>
<td><A HREF="livres.php?lettre=V">V</A>
</table>
<hr>
<?
//Reception de la lettre choisie
$lettre = isset($_GET["lettre"]) ? $_GET["lettre"] : null;
if ($lettre != null){
//Chercher les livres dont le nom commence par la lettre choisie
$sql ="SELECT id, nom, description FROM livre WHERE nom LIKE '$lettre%' ORDER BY nom";
//connecter au serveur mysql
$serveur = mysql_connect("localhost","root","");
//ouvrir la base de données "biblio"
mysql_select_db ("biblio", $serveur);
//exécuter la requête
$resultat = mysql_query($sql, $serveur);
//tester si la requête a trouvé des livres
if (mysql_num_rows($resultat) <= 0) echo "Aucun livre!";
else {
//afficher la liste des livres trouvés
echo "<h3>Liste des livres</h3>
<table border=1><tr><th>Nom <th>Description";
//lire le resultat ligne par ligne
while ($ligne = mysql_fetch_assoc($resultat)){
$id = $ligne["id"];
$nom = $ligne["nom"];
$description = $ligne["description"];
//le champ "nom" est sous forme de lien hypertexte (au clic il envoi l'id)
echo "<tr>
<td><A HREF='page2.php?id=$id'>$nom</A>
<td>$description";
}
echo "</table>";
}
}else "Choisir une lettre";
?>[/php]
[b]Et la page2.php : qui affiche la fiche livre [/b]
[php]<?
//Reception de l'id d'un livre selectionné
$id = isset($_GET["id"]) ? $_GET["id"] : null;
if ($id != null){
//Chercher le livre de l'id choisi
$sql ="SELECT * FROM livre WHERE id = $id ";
//connecter au serveur mysql
$serveur = mysql_connect("localhost","root","");
//ouvrir la base de données "biblio"
mysql_select_db ("biblio", $serveur);
//exécuter la requête
$resultat = mysql_query($sql, $serveur);
//tester si la requête a trouvé des livres
if (mysql_num_rows($resultat) <= 0) echo "Aucun livre!";
else {
//lire le resultat qui ne contient qu'une ligne (pas besoin de boucle while)
$ligne = mysql_fetch_assoc($resultat);
$id = $ligne["id"];
$nom = $ligne["nom"];
$description = $ligne["description"];
$histoire = $ligne["histoire"];
//afficher l'dentité du livre trouvé
echo "<h3>Fiche livre</h3>
<table>
<tr><td>$nom
<tr><td>$description
<tr><td>$histoire
</table>";
}
}else "Choisir un id";
?>[/php]
[b]La base de données [/b]mysql utilisée s'appelle "biblio" et contient une table appellée "livre" dont la structure est la suivante :
[code]--
-- Structure de la table `livre`
--
CREATE TABLE `livre` (
`id` int(11) NOT NULL auto_increment,
`nom` varchar(30) NOT NULL default '',
`description` varchar(50) NOT NULL default '',
`histoire` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;[/code]