PHP - Utilisation de MySQL : connexion, exécution de requêtes, parcours des résultats

Cet article a pour but de rappeler (car chacun connait, évidemment) les bases des requêtes mysql et de l'utilisation de mysql dans PHP, les néophytes seront ravis ^^ Notamment : - Connexion à une base de données - Structure / Syntaxe d'une requête MySQL - Exécuter une requête MySQL en PHP - Parcourir un tableau MySQL ( c'est à dire utilisation du résultat de la requête)   I) Se connecter à la base de donnée
<?php // On indique le serveur (la plupart du temps, "localhost"), le nom d'utilisateur, et le mot de passe // Ces informations sont fournies par votre hébergeur $db = mysql_connect("$serveur","$utilisateur","$mot_de_passe"); // On sélectionne notre base de donnée, dont le nom est également fournie par l'hébergeur. // A noter la présence de $db, en fin de fonction. Cette variable correspond à notre connexion au serveur MySQL, // créée précédemment. mysql_select_db("$nom_de_la_base_de_donnees",$db); // Il est conseillé de fermer le plus rapidement possible la connexion, afin d'éviter de se retrouver confronté // à l'erreur Max_User_Limit // Pour fermer la connexion, on utilisation la fonction mysql_close. mysql_close(); ?>
  II) Structure / Syntaxe d'une requête MySQL Pour sélectionner un ou plusieurs champs d'une table, on utilise la commande select. Syntaxe : select nom_du_champs from nom_de_la_table Cette commande sélectionne toutes les valeurs du champs nom_du_champs dans la table nom_de_la_table Pour sélectionner plusieurs champs dans cette table : Syntaxe : select champs1, champs2 from nom_de_la_table Cette commande sélectionne toutes les valeurs des champs champs1 et champs2 dans la table nom_de_la_table Pour filtrer un select, on utilise le filtre where. Syntaxe : select champs1 from table1 where champs2='valeur_du_champs' Cette commande permet de sélectionner toutes les valeurs du champs champs1 de la table table1 dont la valeur de champs2  est valeur_du_champs. Pour limiter le nombre de résultats, on utilise limit Syntaxe : select champs1 from table1 where champs2='valeur_du_champs' limit 1 Cette commande permet de sélectionner une valeur du champs champs1 de la table table1 dont la valeur de champs2  est valeur_du_champs. Pour trier les résultats, par ordre croissant, on utilise order by nom_du_champs ASC Pour trier les résultats, par ordre décroissant, on utilise order by nom_du_champs DESC Par exemple : select champs1 from table1 where champs2='valeur_du_champs' order by champs2 DESC limit 1 Pour mettre à jour la valeur d'un champs, on utilise la commande update. Syntaxe : update nom_de_la_table set nom_du_champs = 'valeur' Le filtrage et triage sont les mêmes que pour select. Par exemple : update nom_de_la_table set nom_du_champs = 'valeur' where champs2='valeur_du_champs' order by champs2 DESC limit 1 Pour ajouter une valeur (addition), : update nom_de_la_table set nom_du_champs = (nom_du_champs + valeur) where champs2='valeur_du_champs' order by champs2 DESC limit 1   III) Exécuter une requête MySQL en PHP Après s'être connecté à la base de données MySQL, il suffit d'utiliser la fonction php mysql_query(). Il suffit de spécifier, en argument, la requête que vous souhaitez éxecuter. Par exemple :
<?php $requete = "update nom_de_la_table set nom_du_champs = 'valeur' where champs2='valeur_du_champs' order by champs2 DESC limit 1 "; mysql_query($requete); ?>
  IV) Parcourir un tableau MySQL ( c'est à dire utilisation du résultat de la requête) Tout d'abord, il faut exécuter la requête, après s'être connecté à la base de données. En revanche, il faut stocker le résultat de la requête dans une variable.
<?php $requete = "select champs1 from table1 where champs2='valeur_du_champs' order by champs2 DESC limit 1"; $variable=mysql_query($requete); ?>
Pour extraire le tableau de résultat de la requête MySQL, nous allons utiliser la fonction MySQL mysql_fetch_array(, de la manière suivante :
<?php $requete = "select champs1 from table1 where champs2='valeur_du_champs' order by champs2 DESC limit 1"; $variable=mysql_query($requete); while($resultat=mysql_fetch_array($variable)){ // comandes PHP } ?>
  Cela aura pour effet, de créer un tableau $resultat pour chaque résultat trouvé. Dans notre exemple, nous aurons uniquement, dans le tableau resultat, $resultat['nom_de_la_table']. Si nous avions fait :
<?php $requete = "select * from table1 where champs2='valeur_du_champs' order by champs2 DESC limit 1"; $variable=mysql_query($requete); while($resultat=mysql_fetch_array($variable)){ // comandes PHP } ?>
  Nous aurions obtenu un tableau $resultat comprenant tous les champs de la table, dont champs2 est égal à valeur_du_champs. Vous povuez tester d'afficher le résultat via print_r($resultat) pour vous en apercevoir vous-même. Si vous avez des questions, suggestions ou des commentaires, n'hésitez pas à les poster ci-dessous !