Kommunauty
Connexion
Inscription

Apprendre à utiliser MySQL avec phpMyAdmin

le 10 avril 2011 • Programmation • par Courroux

Ce tutoriel est destiné à tous ceux qui ont terminé l'apprentissage du PHP mais qui ont besoin de sa combinaison avec MySQL pour stocker des données.


Mais une base de donnée abrégée par BDD c'est quoi concrètement? C'est une base qui stock des données

Plus sérieusement, sans BDD on ne va pas loin, certes on peut stocker des informations dans des fichiers PHP, mais ce n'est pas très propre ni organisé et on se retrouve très vite limité.

MySQL est un système de gestion de base de données (SGBD), c'est le plus utilisé en combinaison avec le PHP. Il en existe plein d'autres (PostgreSQL, SQLite etc.)

Pour apprendre à gérer une base de donnée il faut apprendre le langage SQL car c'est lui qui associé aux SGBD.

-> Ce qu'il faut savoir c'est qu'une base de données est formée de tables dans lesquelles les données sont classées.

Les tables sont constituées des informations que vous voudrez stocker, un nom, une adresse courriel, un pseudo, les possibilités sont tellement grandes...

Dans une table vous pouvez stocker une infinité de données, en fait, tout dépendra de ce que vous voudrez en faire.

On peut gérer une base de données de différentes manières, depuis une console (SSH), avec PHP (exécution de requêtes) ou alors avec l'aide de programmes qui nous donnent une vue graphique de la base de données. Dans cet article je parlerai du célèbre phpMyAdmin car il est peu courant de voir des utilisateurs utiliser autre chose


Sommaire :


Un peu d'histoire...

Avant de se lancer dans la partie "pratique" du sujet, commençons par un peu de théorie. Alors avant tout, le mot "SQL" est un dérivé du mot "Structured Query Langage" qui signifie Langage d'introduction structuré. Conçu par IBM dans les années 70, le SQL n'est normalisé qu'en 1984.

Une de ses dérivées parmi les plus populaires est le MySQL, aujourd'hui couramment utilisé en combinaison avec le PHP pour obtenir un stockage dynamique.

phpMyAdmin

L'interface de phpMyAdmin est tellement complète que la quasi-totalité des choses que l'on peut exécuter est faisable à partir de ce programme.

A gauche de votre écran vous devriez trouver ce menu. C'est ici que seront placées toutes les BDD que vous aurez créées.

A l'intérieur de chaque base de données se trouvent des tables et à l'intérieur de chaque table des valeurs. C'est à vous d'adapter en fonction de vos besoins.


Un des gros avantages de phpMyAdmin c'est qu'il permet depuis son interface de créer des bases de données, simplement et rapidement.

Essayez de créer une base de données pour voir. Entrez dans le champ vide le nom que vous voulez donner à votre BDD, "test" par exemple. Puis cliquez sur "Créer".


De la même manière on peut créer une table. Cliquez sur la nouvelle base de donnée que vous avez créé, et là comme par magie, nous n'avons aucunes tables de crées. C'est un peu normal, puisque nous venons de créer notre BDD !

Depuis votre interface vous devriez avoir ça. Entrez un nom dans le champ "Nom", comme par exemple "test". Ensuite vous devrez choisir le nombre de colonnes, le nombre que vous allez entrer doit bien être choisi car il déterminera les informations que vous voudrez stocker.

Par exemple si nous créons un système de news, nous aurons besoin de deux champs, à savoir le champ "Sujet" pour stocker le sujet de chaque message et le champ "Message" pour stocker le message envoyé par le visiteur. Donc choisissons pour le moment deux colonnes, ce sera amplement suffisant. Et voici ce que l'on obtient une fois cliqué sur "Exécuter" :

Mais non revenez, il n'y a rien qui fait peur En fait sous ces diverses options il n'y a que très peu à remplir...

Les champs à remplir obligatoirement sont:

  • Colonne : afin d'enregistrer le nom du champ
  • Type : afin de choisir le type de données à enregistrer, titre (Varchar), un long texte (TEXT), des nombres (INT), des dates (DATE) etc...
  • Taille/Valeurs : afin de limiter le nombre de caractères
  • AUTO_INCREMENT : non obligatoire mais très utile, il permet au champ de s'incrémenter automatiquement, à utiliser selon vos besoins

Gérer sa base de données créée

Une fois que vous avez tout rempli, cliquez sur "Sauvegarder", notez que si vous voulez ajouter une colonne et que vous ne voulez pas revenir en arrière, choisissez le nombre de colonne à ajouter et cliquez sur "Exécuter".

Par défaut, une table vide vous montrera sa structure c'est à dire, les types de données qu'elle contient. Dès que vous ajouterez des informations, elles seront affichées en premier. Voici à quoi la structure devrait ressembler:

Ce tableau constitue les champs de votre table. Bien sûr, il est possible d'en rajouter, d'en supprimer ou d'en modifier le nom.

-> Vous pouvez également rajouter des valeurs à votre table. Depuis le menu du haut, vous avez diverses options. Nous allons commencer par stocker un premier article que l'on voudra afficher sur notre site, pour cela vous devez cliquer sur le lien "Insérer" depuis le menu du haut, voici ce à quoi ça devrait ressembler:

Cliquez sur "Enregistrer" puis dirigez vous vers l'onglet "Affichage", vous devriez avoir ceci:

C'est également cette page par défaut qui sera affichée dorénavant jusqu'à ce que tous les articles soient supprimés. Pour le moment nous créons nos articles manuellement, mais grâce à PHP nous pouvons le faire automatiquement depuis la gestion de notre site web.


Pour le moment nous n'avons vu que très peu de choses quant aux services proposés par phpMyAdmin; cet outil complet permet également de formuler une requête SQL grâce à l'onglet "SQL", cette fenêtre sera bientôt celle que nous utiliserons le plus.

Importer/Exporter une base de données

Nous pouvons également exporter notre base de donnée, c'est à dire la sauvegarder sur notre disque dur depuis l'onglet "Exporter". Très utile, phpMyAdmin vous fourni automatiquement un fichier en .sql contenant toutes vos tables, champs, etc.

Si par malheur votre base de données venait à être supprimée, grâce à l'exportation que vous aurez préalablement faite vous pourrez la remettre sur pied depuis l'onglet "Importation". Notez qu'en revanche la sauvegarde ne se fera pas automatiquement, c'est à vous de le faire régulièrement, chaque semaine par exemple.

Vous pouvez également d'un simple clic, vider les valeurs de votre table grâce à l'onglet "Vider" ou alors supprimer complètement votre table grâce à l'onglet "Supprimer".

Et vous pouvez encore gérer plein d'autres choses depuis l'onglet "Opérations", tel que renommer la table, l'optimiser afin de la nettoyer, la déplacer ou la copier vers une autre BDD, la réparer, l'analyser etc.

Communiquer avec la BDD

Maintenant que nous avons découvert les fonctionnalités nombreuses de phpMyAdmin, nous allons apprendre à communiquer avec une base de données grâce à MySQL, à l'aide de PHP.

Avant de communiquer avec votre BDD, il faut s'y connecter sinon elle serait accessible à tout le monde et je vous laisse imaginer le bazar

-> Pour se connecter à une base de données depuis PHP, il faut spécifier le serveur (généralement localhost), le nom d'utilisteur + le mot de passe (à créer depuis l'interface de votre hébergeur) et la BDD (à créer depuis phpMyAdmin).

<?php
$id_connexion=mysql_connect("serveur","user","pass"); //On renseigne les identifiants
mysql_select_db("bdd"); //On sélectionne la BDD
?>

//On tape ici la requête
mysql_close(); //Puis on se déconnecte

Pas d'explication nécessaire. C'est très simple.

Maintenant que nous sommes connecté à la BDD, nous allons pouvoir envoyer des requêtes. Une requête, à quoi ça sert ? Simplement, une requête a plusieurs intérêts, par exemple nous pouvons soutirer certaines informations de la table grâce à une requête, etc...

-> Envoyer une requete

Pour envoyer une requête à une BDD, on utilise la fonction mysql_query. Les requêtes les plus couramment utilisés sont:

  • CREATE (création d’une table)
  • SELECT (sélection)
  • INSERT (insertion)
  • UPDATE (mise à jour des données)
  • DELETE (suppression)
  • ALTER (modification d’une table)
  • etc...


Voici un exemple de requête MySQL:


$result = mysql_query("SELECT * FROM nom_table");

Voici ce que cette requête veut dire :

On sélectionne une donnée (ici l'étoile "*" ne veut rien dire) de la table "nom_table".

C'est tout bête et tout simple.

Donc jusque là, nous avons appris comment se connecter à la base de données, comme envoyer une requête, et comment se déconnecter.

Maintenant nous allons passer à la partie pratique car rien ne vaut un exemple concret. Nous allons apprendre à créer un système de news en combinant PHP et MySQL.


Partie pratique

Donc, nous allons créer un mini système de news qui vous apprendra à soutirer des informations facilement et rapidement de notre base de données qui jusque là était vide.

Donc, connectez vous à phpMyAdmin et envoyez cette requête:

create table news (
id_news smallint auto_increment,
titre varchar (50),
sujet text,
primary key (id_news));

-> Comprendre la requete

Je pense que si vous avez lu cet article au complet, vous devriez avoir compris le sens de cette requête. Donc, on a crée une table nommée "news".

Cette ligne:

id_news smallint auto_increment,

signifie que toutes les news sont placées suivant un ordre chronologique permettant de les classer grâce à l'auto_increment.

On a ajouté une colonne "titre" grâce à la fonction "varchar". le "(50)" signifie que la longueur maximum du titre est de 50 caractères, à adapter selon vos besoins.

Et on a ajouté une deuxième colonne "sujet" avec la fonction "text" pour afficher un long texte si besoin est. Voilà pour la requête.

Maintenant, on se connecte à la base de données comme on l'a appris:


<?php
$id_connexion=mysql_connect("serveur","user","pass"); //On renseigne les identifiants
mysql_select_db("bdd"); //On sélectionne la BDD

Ensuite, on sélectionne la table:

$requete = " select * from news";
$resultat=mysql_query($requete);

Et on affiche les données présentes dans la BDD:

while ($tableau=mysql_fetch_array($resultat,MYSQL_ASSOC))
{
echo '<tr><td>',$tableau['titre'],'</td><br /><td>',$tableau['sujet'],'</td><br /></tr>';
}

Puis on se déconnecte:

mysql_close(); 

Ce qui donne au complet :

<?php


$id_connexion=mysql_connect("localhost","user","pass");
mysql_select_db("bdd");



$requete = " select * from news";
$resultat=mysql_query($requete);

while ($tableau=mysql_fetch_array($resultat,MYSQL_ASSOC))
{
echo '<tr><td>',$tableau['titre'],'</td><br /><td>',$tableau['sujet'],'</td><br /></tr>';
}
?>

En revanche, ça n'est pas très beau à voir. Le mieux serait d'afficher le tout dans un tableau:

<html>
<body>
<center><h1>Les News</h1>
<table>
<tr><td>Titre</td><td>Sujet</td></tr>

<?php


$id_connexion=mysql_connect("localhost","user","pass");
mysql_select_db("bdd");



$requete = " select * from news";
$resultat=mysql_query($requete);

while ($tableau=mysql_fetch_array($resultat,MYSQL_ASSOC))
{
echo '<tr><td>',$tableau['titre'],'</td><td>',$tableau['sujet'],'</td></tr>';
}
mysql_close();
?>
</center>
</table>
</body>
</html>

Et voilà  !

-> Pour ajouter des news, il vous suffit d'aller dans phpMyAdmin, vous cliquez sur la table "News" puis sur "Insérer". Dans "Id_News", laissez par défaut, phpMyAdmin le remplira tout seul. Dans "titre", choisissez le titre de la news (pas plus de 50 caractères), et dans "Sujet" insérez le texte de la news.

Améliorer le système de news

Ce script est très basique et a été créé uniquement dans le but de vous apprendre comment soutirer des informations d'une BDD. Pour l'améliorer déjà, il vous faudrait améliorer le design notamment la structure des tableaux qui est de loin très médiocre. Voici un exemple pour améliorer le tableau, à placer entre la balise "head":

<style type="text/css">
td
{
   border: 3px solid black;
}
</style>

Vous pouvez ensuite, si vous n'avez pas toujours envie de passer par phpMyAdmin, créer un formulaire d'envoi de news que vous pouvez protéger avec un fichier htpasswd en combinaison d'un fichier htaccess que vous placerez à la racine de votre répertoire à protéger.

Il vous faut ensuite alterner entre XHTML et PHP afin d'afficher un formulaire. Exemple de formulaire:

<form action="fichier.php" method="post">
titre : <input type="text"><br>
sujet : <input type="text"><br>
<input type="submit" value="valider"><br>
</form>

Puis vous stockez les données envoyées par le formulaire dans la BDD. Grâce à l'auto incrémentation que nous avons défini lors de la création de la table, ces données seront affichées automatiquement dans la page PHP que nous avons crée.

Pour cela, je vous conseille maintenant de foncer sur un de nos articles :

Créer un gestionnaire d'articles en PHP

De plus, si jamais vous comptez aggrandir votre site et que vous en avez marre d'à chaque fois vous connecter à la BDD (ou si vous souhaitez changer de mot de passe sans pour autant modifier 36 fichiers PHP ) et bien vous pouvez créer un fichier PHP dans lequel vous placez le code de connexion à la BDD puis vous le reliez aux autres fichiers grâce à la fonction "include".

Conclusion

Ce mini-cours ne vous apprendra pas la manière d'utiliser MySQL en PDO (que je conseille vivement en passant), ni comment se protéger des injections SQL ou tout autre problème de sécurité. Cet article vous apprend uniquement comment communiquer avec la BDD et ainsi afficher des données stockées dedans.

Si vous avez des questions, n'hésitez pas à les poser en commentaire, et pour tout problème, sur le forum.

  
17 commentaires

Superbe, magnifique, j'ai rien a rajouter Merci beaucoup pour cette contribution !

le 10 avril 2011

Rapide et concis... un très bon tuto.

le 10 avril 2011

Merci

Sinon Mizur, l'article ne devait pas sortir demain ?

le 11 avril 2011

Oua, le super tuto Merci bcp a Courroux

le 11 avril 2011

Si, mais comme je l'ai signalé sur le forum, quand y en a encore un qui m'a dit "où je peux aller pour apprendre le SQL stp?!" j'ai craqué, désolé

le 12 avril 2011

Pas de quoi kikikc

Et je te pardonne mizur

le 12 avril 2011

Changer le titre pour "Apprendre à utiliser MySql avec l'outil phpMyAdmin" (pour le referencement)

le 19 avril 2011

l'utilisation de la PDO est maintenant conseiller.

le 9 mai 2011

En faite, j'hésitais à intégrer la PDO dans cet article mais ça ne servirait à rien d'intégrer les deux méthodes et comme je ne maitrise pas totalement la PDO et bien mon choix fut vite fait.

Bien que l'organisation du code soit différente, je préfère 1000 fois la PDO. On obtient un code plus clair et plus propre.

le 9 mai 2011

ouh là génial merci pour ce tuto car dans le cadre dans mon boulot on m'a ouvert une table MySQL sauf que c'est du chinois pour moi donc je vais étudier ça de près pour essayer de comprendre! MERCI

le 26 juillet 2011

Je vous recommande XAMPP qui intgre PHPmyadmin !

le 11 septembre 2011

Comment exporter une sélection de tables dans la bdd dans Phpmyadmin ?

J'ai sélectionner et cocher les tables que j'ai choisi pour les exportées, mais le problème c'est que ça m'exporte toute la bdd.

le 18 janvier 2012

Bonjour,

est-il possible de faire une requête pour ne sélectionner qu'un seul enregistrement (une seule ligne de la table). Merci

le 21 janvier 2013

Oui, grâce à l'outil de sélection WHERE. Par exemple, tu prends un champs de ta table, imaginons le champs ID.

$req= mysql_query("SELECT * FROM matable WHERE id= 1") or die;

Avec cette requête, tu sélectionnes toutes les données de la ligne dont le champs ID est 1.

le 21 janvier 2013

merci ,c'est trop intéressent ,j'en avais besoin pask j'avais des trik qui clauche opropos de la connection fin le code donc gracias

le 6 février 2013

Votre tutoriel a ete bien explique , je vous encourage a faire plus !

le 15 mai 2013

Xampp, EasyPHP, WampServer, sous Windows alors que sous linux il est préférable d'utiliser MySQL, PHP, et Apache2 en installation dédiée ^ ^

le 15 mai 2013



Ajoute un commentaire !

Ajouter une image... Trouvée sur internet » De mon PC »
Adresse URL :
Adresse de la page de la vidéo :
Taille du texte :
Couleur du texte :

Article lu 21672 fois.