Lire des données dans une base de données MySQL

Transcription

Lire des données dans une base de données MySQL
Lire des données dans une base de données MySQL
Maintenant que vous savez comment créer une table et des enregistrements dans une table, nous allons voir comment afficher
ces données dans une page. Comme vous l'avez compris, on retourne ici au langage php.
Connexion à la base de données :
Pour pouvoir travailler avec une base de données MySQL, il faut s'y connecter. Le langage PHP fait la liaison entre vous et
votre base de données. Il va falloir donner des informations à MySQL pour pouvoir s'y connecter (nom du serveur, nom
d'utilisateur et le mot de passe). C'est normal que MySQL vous demande ces informations sinon tout le monde pourrait se
connecter à votre base de données et ainsi faire toutes les bétises possible.
Pour se connecter à MySQL, nous allons utiliser une fonction préétabli nommé mysql_connect. Cette fonction a besoin de 3
arguments :
●
●
●
Le nom de l'hôte : Si vous utilisez votre base de données en local, le nom de l'hôte est toujours localhost.
Le login : Si vous utilisez votre base de données en local, le login est toujours root.
Le mot de passe : Si vous utilisez votre base de données en local, il n'y a pas de mot de passe.
Si vous n'utilisez pas votre base de données local, votre hébergeur de site internet doit vous fournir ces informations.
Généralement, le login et le mot de passe correspondent au login et mot de passe de votre FTP.
Pour notre exemple, nous allons utiliser notre base de données créer localement. Le code suivant, vous permet de vous
connecter à votre base de données :
<?php
mysql_connect("localhost", "root", "");
?>
Choisir sa base de données :Ce n'est pas plus compliqué que cela. Si vous copiez/coller ce code, vous serez connecté à
votre base de données.
Maintenant que nous sommes connectés, il faut pouvoir choisir la base de données sur laquelle, on va travailler. Si vous vous
souvenez bien, dans PhpMyAdmin, je vous ai fait créer une base de données nommé "toto" mais on peut très avoir plusieurs
base de données. Donc nous devons dire aussi à php que nous allons utilisé la base de données toto.
Généralement si vous prenez un hébergeur payant tels que OVH, vous pouvez choisir le nom de votre base de données.Donc,
pour pouvoir utiliser la base de données toto, nous allons utiliser la fonction mysql_select_db. Voici le code suivant qui permet
de choisir la base de données :
<?php
mysql_connect("localhost", "root", ""); // Connexion à la base de données
mysql_select_db("toto"); // Sélection de la base de données
?>
Déconnexion de la base de données :Voila, maintenant il ne faut pas oublier de déconnecter la base de données
Une fois que vous vous êtes connectés, que vous avez choisi votre base de données, vous pouvez commencer votre travail.
Mais une fois que vous avez fini de travailler sur votre BDD, il faut vous déconnecter. Comme vous pouvez vous en doutez
nous allons utiliser une nouvelle fonction nommée mysql_close. Il n'y a aucun paramètres à saisir.
Voici le code final pour vous connecter, sélectionner et vous déconnecter de votre base de données :
<?php
mysql_connect("localhost", "root", ""); // Connexion à la base de données
mysql_select_db("toto"); // Sélection de la base de données
// ...
// ...
mysql_close(); // Déconnexion de la base de données
?>
Lire des données dans une base de données :Voilà, nous avons connecté notre base de données. Si vous testez ce code,
rien n'apparaîtra sur votre écran et c'est bien normal, nous n'avons pas encore vu comment récupérer les données saisies dans
notre base de données.
Normalement, vous avez du créer une table utilisateur dans PhpMyAdmin. Cette table va m'être utile pour afficher les données.
Si vous ne l'avez pas encore crée, il faut maintenant la créer.
Une fois la table créer, nous allons utiliser ici une fonction nommée mysql_query avec un paramètre écrit en langage SQL pour
afficher les informations de notre base de données.
N'ayez pas peur
, le langage SQL est très très simple. Beaucoup plus simple que le langage PHP.
Cette fonction renvoie une valeur, il va donc falloir récupérer cette valeur dans une variable. Je vous le rappelle une variable
commence toujours par $.
Pour afficher des informations, on fera toujours la même chose donc je vous conseille de faire et de refaire ces quelques lignes
de code au lieu d'utiliser le copier / coller :
<?php
$reponse = mysql_query ("Requête SQL");
?>
Que met-on à la place de "Requête SQL"
Ben tout simplement du SQL
.C'est un langage qui vous permet de communiquer avec MySQL. Nous allons utiliser ici, la
commande SELECT qui permet de sélectionner les champs de votre table et la commande FROM qui est un mot de liaison
entre le nom des champs et le nom de la table :
SELECT * FROM utilisateur
Que signifie * : Tout simplement, on va sélectionner tout les champs de la table "Utilisateurs". Si on avait voulu sélectionnez 2
champs par exemple de la table, on aurait mis le code suivant :
SELECT pseudo, email FROM utilisateur
Donc voila le code qui va permettre d'afficher des données :Dans cette requête, puisque c'est le terme que l'on utilise, donc
dans cette requête, on sélectionne le pseudo et l'email depuis la table utilisateur.
<?php
$reponse = mysql_query ("SELECT * FROM utilisateurs");
?>
<span style="font-family:sans-serif; line-height:1.6em">Notre variable $reponse contient désormai
Mais pourquoi lorsque j'essai ce code, je n'ai rien qui est affiché.
C'est normal, il ne faut pas oublier d'afficher vos informations grâce à la commande echo. Mais ici, un nouveau soucis va
apparaître, imaginons que nous avons une table avec 5 champs et 200 enregistrements. Echo va afficher plus de 1000
informations mais totalement désordonnées. Nous allons donc utiliser une fonction préétabli et qui se nomme m
Il ne faudra pas oublier de faire une boucle aussi pour afficher tous les enregistrements. A chaque fois que vous utiliserez la
fonction mysql_fetch_array vous passerez à la donnée suivante :
Bon, je vous sent un peu perdu
, mais avec le code suivant, vous allez comprendre facilement. En plus, je mettrai tout les
commentaires à coté pour vous expliquer chaque ligne du code :
<?php
mysql_connect("localhost", "root", ""); // Connexion à la base de données
mysql_select_db("toto"); // Sélection de la base de données
$reponse = mysql_query ("SELECT * FROM utilisateur"); // Requête SQL
while ($donnees = mysql_fetch_array($reponse)) // On boucle pour afficher toutes les données et
{
?>
<?php echo $donnees['pseudonyme'];?> |
<?php echo $donnees['email'];?> |
<?php echo $donnees['date_naissance'];?>
<?php
}
mysql_close(); // On oubli pas de déconnecter la base de données
?>
<span style="font-family:sans-serif; line-height:1.6em">Essayez ce code, je vous assure que tout
Vous pouvez essayer de changer le script ou même d'insérer de nouveau enregistrement dans votre base de données. Vous
verrez le résultat.
Quel est la différence entre $donnees et $reponse
$reponse contient la réponse de MySQL en vrac.
$donnees est un array renvoyé par la fonction mysql_fetch_array. A chaque fois qu'on fait une boucle, mysql_fetch_array va
chercher dans $reponse l'entrée suivante et organise les champs dans $donnees.