3
Exploiter plusieurs enregistrements avec la clause SELECT
En effet, si notre requête retourne plusieurs enregistrements, il suffit d'effectuer une boucle
while qui lira tous les enregistrements jusqu'au dernier pour affichage, exploitation...
Nous prendrons ici l'exemple de l'affichage des 4 premières actualités d’un site. Voici le code
utilisé (en admettant que nous sommes déjà connectés à notre base)
$requete = "SELECT * FROM table_actualites ORDER BY champ_date DESC LIMIT
4"; // on limite à 4 le nombre d'enregistrements souhaité
// envoi de la requête
$resultat = mysql_query($requete) or die ('Erreur '.$requete.' '.mysql_error());
// tant qu'il y a un enregistrement, les instructions dans la boucle s'exécutent
while ($ligne = mysql_fetch_assoc($resultat)) {
$date = date( "d/m", strtotime($ligne['champ_date']));
// on convertit la date dans un format lisible
$news .= '<br /><font
color="#0000ff"><b>'.$date.'</b></font> <a
href="http://www.cnam.fr/actualites/actualites/actu_'.$ligne['
champ_numero'].'.php">'.$ligne['champ_actu'].'</a>'; // mise
en place d'un lien sur le titre et ajout dans la variable
$news
}
echo $news; // affichage de la variable $news qui s'est enrichie à chaque passage dans la
boucle d'une actualité
Nous constatons que la fonction mysql_fetch_assoc() permet de récupérer les valeurs de
l'enregistrement en cours tout en passant au suivant une fois la fonction appelée. C'est à dire
qu'il n'est pas utile (comme en ASP par exemple) d'indiquer que l'on souhaite maintenant lire
le prochain enregistrement, ils sont lus séquentiellement.
Notons qu'il n'est pas possible de "revenir en arrière", au premier enregistrement à lire avec
cette méthode. Le résultat sera le suivant :
04/02 De l'électricité à partir de la pression atmosphérique
03/02 L’effet de serre à la lumière de l’histoire géologique
02/02 Journée mondiale des zones humides
01/02 Les poissons de la Baltique trop toxiques pour être vendus en Europe
Les principales fonctions MySQL en PHP
Fonction
Description
mysql_close() ferme la connexion MySQL
mysql_connect() ouvre une connexion à un serveur MySQL
mysql_error() renvoie l'erreur MySQL rencontrée
mysql_fetch_array()
retourne une ligne de résultat sous la forme d'un