Gestion MySQL
< Programmation PHP
: Accueil du site
Vous êtes ici : Séléctionner des données dans une base de données MySQL
Les bases de données MySQL sont très utilisés dans la conception de site dynamique pour stocker des données facilement et rapidement.
L'avantage d'utilise une base de données MySQL est également la facilité de la syntaxe du langage SQL (langage permettant de travailler avec MySQL).
La structure syntaxique à utiliser est la suivante :
SELECT champ1,champ2 FROM table WHERE condition
Sachez avant tout qu'il est obligatoire pour que cela fonctionne qu'une connexion à la base de données soit faite.
L'on va dire à PHP que l'on souhaite envoyer une requête à la base de données MySQL à l'aide de la fonction mysql_query().
Voici la structure de son utilisation :
mysql_query(requete_SQL);
Voyons maintenant comment envoyer, en PHP, une requête au serveur MySQL :
<?php
# Connectez vous auparavant à la base de données
$rechercheArticle = mysql_query('SELECT nom FROM article WHERE id=1');
$reponseArticle = mysql_fetch_assoc($rechercheArticle);
echo $reponseArticle['nom'];
?>
Ce bout de code va permettre via la variable $rechercheArticle de rechercher l'attribut du champ "nom" dans la table article à l'endroit où le champ "id" est égal à 1.
Cette variable ($rechercheArticle) va permettre de stocker la requête envoyée au serveur MySQL.
Dans notre cas, la requête SQL est la suivante :
SELECT nom FROM article WHERE id=1
On commence avec l'attribut "SELECT" qui peut se traduire par "Séléctionner", il va permettre d'indiquer au serveur MySQL que l'on veut sélectionner quelque chose. Ce quelque chose est suivi par les champs que l'on souhaite sélectionner. S'il y'a plusieurs champs à sélectionner, il suffit de les séparer à l'aide d'une virgule (nom,categorie).
On retrouve ensuite l'attribut "FROM" qui peut se traduire par "Provenant de ...", il va permettre d'indiquer au serveur MySQL que l'on souhaite rechercher ces champs dans la table article.
Enfin, l'on retrouve l'attribut "WHERE" qui pourrait se traduire "Selon les conditions ...". Cet attribut permet de détailler et filtrer sa recherche (il s'agit de placer une condition dans la requête).
Dans notre cas, il va sélectionner le champ nom de la table article où l'entrée a pour id 1.
Comme vous pouvez le constater, suite à la requête de sélection, nous avons placé une variable contenant les informations suivantes :
$reponseArticle = mysql_fetch_assoc($rechercheArticle);
Ce bout de code permet de dire à PHP que le contenu recherché dans la requête est placé dans un tableau sous la variable $reponseArticle.
La structure est très simple :
mysql_fetch_assoc(variable_qui_envoi_la_requete)
On assigne à une variable la réponse renvoyée par le serveur MySQL sous forme de tableau.
Entre les parenthèses (en tant qu'argument), l'on entre la variable qui a envoyé (précédemment) la requête au serveur.
L'on peut maintenant afficher le contenu du champ via la variable de type "array" $reponseArticle.
<?php echo $reponseArticle['nom_du_champ']; ?>
Il se peut que la condition que vous entrez retourne plusieurs réponses, nous allons voir ci-dessous comment afficher ces différentes réponses.
Le principe est très similaire, partons d'un exemple :
<?php
#Connexion au serveur auparavant
$rechercheArticles = mysql_query('SELECT nom FROM article');
while($reponseArticles = mysql_fetch_assoc($rechercheArticles)){
echo $reponseArticles['nom'].'<br />';
}
?>
On créer une variable ($rechercheArticles) qui lance la requête au serveur MySQL, dans notre cas il n'y a pas de condition précise, l'on recherche donc toutes les entrées de la table.
On créer ensuite une boucle ayant comme argument :
$reponseArticles = mysql_fetch_assoc($rechercheArticles)
Il s'agit de l'affectation à une variable (array) le résultat de la requête.
Le fait de placer cette ligne indiquant comment récupérer le résultat dans l'argument de la boucle "while" permet de ressortir les réponses pour chaque résultat facilement.
Il suffit d'indiquer à l'intérieur de la boucle comment travailler avec les données récupérer pour chaque résultat.
Dans notre cas, imaginons qu'il y a 2 articles :
1. Champ nom : Article test 1
2. Champ nom : Article test 2
Le résultat afficherait :
Article test 1
Article test 2