PHP MySQL : les bases de données
Requêtes de sélection et jeux d'enregistremenst
La première chose à faire pour exploiter un jeu d'enregistrements est d'en parcourir toutes les lignes. PHP propose plusieurs fonctions permettant de lire une ligne et de déplacer le curseur à la ligne suivante. Une de ces fonctions est mysql_fetch_array() dont le nom décrit bien l'utilité puisqu'en anglais to fetch signifie "aller chercher".
La fonction renvoie une ligne à la fois dans un tableau associatif (Array) formé des colonnes de la table. Les clés du tableau sont les noms des colonnes. Lorsque la fonction dépasse les limites du jeu d'enregistrements, elle renvoie le booléen false.
Comme on ne connaît pas a priori le nombre de lignes dans le jeu d'enregistrements, on utilise une boucle while qui teste le résultat de l'affectation de cette fonction. Si le résultat est faux la boucle s'arrête, sinon la variable contient le tableau associatif.
array mysql_fetch_array(ressource <jeu d'enregistrements>)
<?php
require("../../../include/doctype.php") ;
$DSN = array (
'hostname' => "localhost",
'username' => "lambda",
'password' => ""
) ;
// 1. connexion
$link = @mysql_connect($DSN[hostname], $DSN[username], $DSN[password] )
or die ("Impossible de se connecter");
// 2. sélection de BD
$ok = mysql_select_db("demo", $link)
or die ("Base de données introuvable") ;
// 3. Formulation puis exécution de la requête
$sql = "select * from Films" ;
$films = mysql_query($sql)
or die ("Echec de la requête") ;
// 4. Impression du doctype par la fonction doctype_html
doctype_html("Production d'une page Web à partir d'une requête") ;
print ("<body>") ;
// 5. Les données sont affichées dans un élément html <table>. php doit générer tout le code nécessaire
// pour construire les lignes et les colonnes
print ("<table>") ;
while ($row = mysql_fetch_array($films) ) {
print("<tr><td>" . $row['titre'] . "</td></tr>") ;
}
print ("</table>") ;
// 6. Fermeture de la connexion
mysql_close() ;
print("</body>\n</html>") ;
?>