Séléctionner des données dans une base de données MySQL

Catégorie Gestion MySQL < Programmation PHP : Accueil du site

Vous êtes ici : Séléctionner des données dans une base de données MySQL

Publié par Mikiman

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).

Séléctionner des données dans une base de données MySQL


La structure syntaxique à utiliser est la suivante :

Code source :

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 :

Code source :

mysql_query(requete_SQL);



Voyons maintenant comment envoyer, en PHP, une requête au serveur MySQL :

Code source :

<?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 :

Code source :

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 :

Code source :

$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 :

Code source :

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.

Code source :

<?php echo $reponseArticle['nom_du_champ']; ?>



Rechercher plusieurs résultats dans une requête


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 :

Code source :

<?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 :

Code source :

$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