Accueil » Articles » Développez des sites web dynamiques avec PhP et MySQL [Tuto en cours]

Développez des sites web dynamiques avec PhP et MySQL [Tuto en cours]

PRESENTATION DES BASES DE DONNEES ET DE MYSQL

Introduction aux bases de données et à MySQL

Une base de données, comme son nom l’indique, est un endroit où l’on va pouvoir stocker des données de façon définitive, comme par exemple les informations relatives aux comptes de vos visiteurs (nom, prénom, adresse, etc.).

Le gros avantage des bases de données est que les informations envoyées sont automatiquement triées et organisées. Cela permet par la suite de s’en resservir beaucoup plus facilement.

On va pouvoir stocker des informations dans nos bases de données grâce à un système de gestion des bases de données. Le système de gestion que nous allons utiliser dans ce cours est le MySQL, mais sachez qu’il en existe bien d’autres comme Oracle ou PostgreSQL.

Tous les systèmes de gestion de bases de données reposent sur le langage informatique SQL. On va donc devoir coder en SQL pour envoyer nos ordres au système MySQL.

Enfin, lorsque nous écrirons nos ordres en SQL, il faudra la faire via l’intermédiaire du PhP, car nous avons besoin de PhP pour créer une connexion avec MySQL. Nous transmettrons donc nos ordres en SQL à MySQL via PhP.

Structure d’une base de données

Une base de données est constituée de tables. Une table est une collection cohérente de données. Une table est elle même constituée de lignes, qu’on appelle également des entrées et de colonnes.

Attention, beaucoup de personnes appellent à tort les colonnes des tables des champs. Un champ est en fait l’intersection d’une ligne et d’une colonne, ce qu’on appellerait dans un tableau une cellule.

Je vous propose d’illustrer tout cela en images, afin que ce soit plus clair. Pour l’exemple, j’utilise la base de données d’une architecture WordPress vierge.

Cette base de données est constituée de différentes tables, comme les tables wp_commentmeta, wp_comments ou wp_links.

Présentation bases de données MySQL

Dans la table wp_comments, par exemple, seront stockés des informations liées aux commentaires de votre blog, comme les auteurs, les commentaires en soi, etc. C’est ce que je voulais dire lorsque je parlais de collection cohérente de données.

Présentation tables MySQL

Je ne peux pas vous afficher ici toutes les colonnes de la table car je n’ai pas assez d’espace, mais il y en a d’autres ! En colonne, nous avons donc un type d’informations à chaque fois, comme l’ID du commentaire ou le nom de l’auteur.

En ligne (c’est à dire pour chaque entrée), nous avons toutes les informations liées à un commentaire en particulier.

Enfin, nous avons une information dans chaque champ, c’est à dire dans chaque cellule, comme l’auteur du commentaire portant l’ID numéro 1 qui est « Monsieur WordPress ».

Accès direct à nos bases de données via phpMyAdmin

Pour accéder aux bases de données, nous avons plusieurs façons de faire. Nous allons nous concentrer sur deux d’entre elles : via PhP, ou directement avec un programme.

Nous allons commencer par le plus simple : l’accès direct via le programme phpMyAdmin.

En fait, phpMyAdmin a été lui même créé en PhP et est un formidable outil pour nous permettre de travailler très simplement sur nos bases de données sans avoir à exécuter aucun code PhP nous mêmes.

Pour accéder à phpMyAdmin, vous devez vous rendre sur la page d’accueil de votre éditeur de texte et cliquer sur l’onglet phpMyAdmin :

Accéder à PhPMyAdmin via MAMP

Vous devriez arriver sur une page de ce type (sans les bases de données que j’ai déjà créées sur la droite) :

Présentation PhPMyAdmin

Création d’une base de données et d’une table via phpMyAdmin

Il est maintenant temps de créer notre première base de données ensemble. Pour cela, rien de plus simple : cliquez simplement sur l’onglet « Bases de données » dans phpMyAdmin, puis rentrez un nom dans le champ « Créer une base de données » et cliquez sur « Créer ».

Création base de données via PhPMyAdmin

Ca y est, nous avons créé notre première base de données, qui est vide pour le moment. Nous pouvons y accéder en cliquant dessus.

Création tables PhPMyAdmin

Commençons donc par créer une première table « users ». Pour cela, écrivez le nom de votre table, laissez le nombre de colonnes sur 4 puis cliquez sur « Exécuter ».

Création tables PhPMyAdmin

Vous devriez arriver sur cette page :

Tables PhPMyAdmin

Vous devez bien comprendre qu’ici nos colonnes se sont retrouvées en ligne. Ne soyez pas perturbé par cela, nos 4 lignes ici correspondent bien aux 4 colonnes que l’on va avoir au final.

Vous pouvez voir différentes sections pour chaque colonne (qui sont encore une fois ici représentées sous forme de lignes), comme « nom », « type », taille / valeurs », « défaut », « interclassement »…

Ces différentes sections vont nous permettre de définir des informations essentielles par rapport à notre table. Notre table ne sera définitivement créée qu’une fois certaines de ces sections remplies. Voyons ensemble à quoi elles correspondent :

  • Nom : permet d’indiquer le nom d’une colonne de notre table. Pour une table « users », on peut par exemple imaginer les colonnes suivantes : id, nom, prénom et adresse mail.
  • Type : le type de données qui vont être stockées dans notre colonne. phpMyAdmin nous propose des dizaines de types et sous-types différents. En pratique, nous utiliserons majoritairement ceux là : texte (VARCHAR), texte long (TEXT), date (DATE) et nombre entier (INT).
  • Taille / Valeurs : permet d’indiquer de taille maximale de ce qui doit être stocké dans la colonne.
  • Index : permet de choisir le mode d’indexation de la colonne. On a le choix entre 4 valeurs : PRIMARY, UNIQUE, INDEX et FULLTEXT. PRIMARY et UNIQUE sont utilisés dans le cas où chaque entrée de notre table est différente des autres (unique). Il ne devrait y avoir qu’une colonne portant l’index PRIMARY dans une table normalement (celle permettant d’identifier de façon unique chaque nouvelle entrée). En pratique, on utilisera peu INDEX et FULLTEXT.
  • A_I : lorsque cette section est cochée, la colonne correspondante va s’auto-incrémenter à chaque nouvelle entrée. On utilisera donc très souvent l’auto-incrémentation avec un index de type PRIMARY et une colonne « id », nous permettant d’identifier très simplement chaque nouvelle entrée de façon unique.
  • En pratique, les sections défaut, interclassement, attributs, null et commentaires ne sont que peu utilisées dans le cadre d’une utilisation basique des bases de données.
  • Nous allons donc remplir les différentes sections pour notre table « users ». Je vous propose 4 colonnes pour commencer : id, nom, prénom et adresse mail.

    Notre colonne id sera de type INT (nombre entier), elle s’auto-incrémentera à chaque nouvelle entrée (c’est à dire pour chaque nouvel utilisateur) et portera un index de type PRIMARY. Très simplement, notre premier utilisateur aura l’id 1, le deuxième l’id 2 et ainsi de suite.

    Nos trois autres colonnes nom, prenom et mail seront de type texte court, c’est-à-dire VARCHAR. A noter que la taille d’une d’un champ d’une colonne de type VARCHAR doit être comprise entre 0 et 65535.

    Remplissage table base de données

    Nous venons de créer notre première table « users » ensemble :

    Création table base de données

    A partir de là, vous pouvez afficher le contenu de la table (pour le moment la table est vide), afficher sa structure, faire des recherches, insérer de nouvelles entrées, vider la table ou la supprimer.

    Pour le moment, nous allons ajouter quelques entrées, en cliquant sur insérer dans la section « action ». Nous n’avons pas besoin de spécifier l’id, étant donné que celui-ci va s’incrémenter tout seul.

    Création entrée dans table phpmyadmin

    Nous n’avons plus qu’à cliquer sur « Exécuter » pour ajouter nos deux nouvelles entrées. On peut ensuite les afficher dans notre table :

    Création entrée dans table phpmyadmin

    Autres fonctionnalités de phpMyAdmin

    On a vu comment créer une base de données, des tables et des comment insérer de nouvelles entrées à partir de rien grâce à phpMyAdmin.

    Cependant, phpMyAdmin nous permet d’effectuer bien d’autres opérations et j’aimerais vous en présenter quelques unes.

    En vous rendant dans l’onglet SQL, par exemple, vous pouvez exécuter ce qu’on appelle des requêtes en SQL. Pas de panique, nous allons découvrir ce nouveau langage dès le prochain chapitre.

    requête SQL phpmyadmin

    Exécuter une requête SQL sur une base de données, c’est demander d’effectuer une action sur cette base de données, comme par exemple sélectionner des éléments ou en insérer.

    Notez que l’onglet « requête » de phpMyAdmin est un onglet d’aide qui vous permet de choisir l’action que vous voulez effectuer sur votre base de données et qui vous affiche la requête SQL correspondante que vous n’aurez alors plus qu’à exécuter.

    Autres options phpmyadmin

    Les onglets « exporter » et « importer » nous permettent respectivement d’exporter une base de données créée dans phpMyAdmin ou d’importer une base de données existante vers phpMyAdmin.

    En pratique, on pourra donc importer une base de données d’un de nos sites si l’on veut travailler dessus localement ou, au contraire, exporter une base de données créée localement afin de l’envoyer sur un serveur distant.

    L’onglet exporter :

    Onglet exporter phpmyadmin

    L’onglet importer :

    Onglet importer phpmyadmin

    PhpMyAdmin dispose encore d’un onglet « opérations » dans lequel on va pouvoir supprimer complètement une base de données (attention, cette opération est irréversible !) :

    Onglet opérations phpmyadmin

    Nous avons maintenant fait le tour de ce que je voulais vous présenter par rapport à phpMyAdmin.

    Dans les prochains chapitres, nous allons découvrir le langage SQL et voir comment on peut accéder à nos bases de données via PhP.

16 commentaires

  1. abdelmalek derouich

    merci infiniment pour ces cours, j’été vraiment nul et maintenant je commence à n’avancer dans la création des sites WEB en utilisant le HTML, le CSS et le PHP et c’est grâce à vos cours minutieusement expliqués.

  2. bonjours ,je suis encore un petit peux débutant dans le codage , j’aimerais faire une page d’inscription et une de connexion en php et mysql je dispose d’une base de donnée . merci d’avance pour votre aide .
    ps : j’adore vos vidéo =)

  3. Bocomba William Edouard

    bonjour,

    je suis William un de vos disciple Abidjan. En lisant le code source du site pierre-girraud.fr j’ai constater un bon nombre de balise link et de balise meta. Et je me pose la question de savoir a quoi elle servent? Par ailleurs je suis impatient de savourer la suite du cour sur php et mysql. Merci d’avance et surtout merci pour tout.

    Amicalement

    William

  4. Bonjour,

    Je te remercie de tout mon cœur Pierre!
    Tu consacre ton temps à partager des choses meilleures.
    Je suis débutant mais je croix de devenir pro, tes tutos sont claires et faciles à comprendre.
    Merci infiniement

  5. Salut, c’est vraiment génial ce que tu fais mais j’ai encore un problème, je n’arrive pas a créer un formulaire pour envoyer un mail ou pouvoir communiquez avec moi (pas un bloc mais vraiment une page de contact).
    Merci de bien vouloir m’aider…

    • Bonjour,

      J’explique déjà tout cela dans mes cours HTML / CSS et PhP… Je ne peux donc que vous conseillez de revoir les parties consacrées à cela (lien pour envoyer un fichier / un mail et partie formulaire HTML et PhP).

      Bonne continuation,
      Pierre

  6. Vous etes genial, j’ai vu vos cours sur youtube et votre adresses qui ma poussé avenir sur votre site. Mr pierre je suis un petit zero de la programmation mais suis pas mal j’aimerai vous assistez dans vos taches pour me former…! merci pour les cours suis content

  7. je voudrais que tu m’explique un peut comment fonctionne les fonction static en phph

  8. bonjour
    merci pour ce cours mais je ne vois pas la partie base de données et pourtant l’intitulé c’est cours complet!!!!

  9. Salut Pierre Giraud,

    Je viens de regarder le tuto sur HTML et CSS, c’est magnifique !!!
    Maintenant j’aimerais creer des sites dynamiques avec PHP MySQL.
    Pourriez vous m’aider s’il vous plait. Merci de votre aide en envoyant des tuto tres tres interessant.

Répondre

Votre adresse email ne sera pas publiée. Les champs obligatoires sont marqués d'une étoile *

*