oujood.com

La mise en place de la base de données MySQL

MySQL est une de base de donnée qui sert à stocker des données et des informations et de bien les classer pour pouvoir les retrouver facilement quant on veut.
Avant de commencer réellement à construire vos scripts de base de données, vous devez avoir une base de données pour placer les informations dedans et les lire. Dans cette section.

chercher |

Tutoriel MySQL

MySQL
Le tutoriel MySQL présente les concepts de base et avancés de MySQL. Notre tutoriel MySQL est conçu pour les débutants et les professionnels.
MySQL est un système de gestion de bases de données relationnelles basé sur le langage de requête structuré (Structured Query Language SQL), qui est le langage populaire pour accéder et gérer les enregistrements dans la base de données. MySQL est un logiciel ouvert et gratuit sous la licence GNU. Il est soutenu par la société Oracle.
Nous allons apprendre comment créer une base de données MySQL et la préparer avec les données, et enfin nous allons aussi apprendre comment créer la base de données de gestion de contacts.

MySQL est un système de BDD.
La BDD MySQL est différente du PHP. php est un langage de programation pour le web
MySQL est un systéme de stockage de données que nous allons voir dans la suite du cours.
Si on veut stocker ou voir des données dans la BDD (Base De Donnée) on le demande à MySQL.
Pour mieux comprendre. Je vous fais le schéma suivant :
Par exemple :
Un visiteur remplit un formulaire sur votre site —>le serveur transmit la demande au PHP —>PHP demande à MySQL de stocker les données du formulaire sur la BDD —>MySQL fait le travail et le signale à PHP —>PHP génère la page et la transmit au serveur —>le serveur la transmit au visiteur.

Une BDD est constituée de plusieurs tables chaque table contient un type d’information par exemple une table pour les données des visiteurs, une autre pour les messages postés dans votre forum, une autre pour le livre d’or etc. …

Ouvrir une connexion à MySQL

Avant de pouvoir accéder aux données de la base MySQL, nous devons pouvoir nous connecter au serveur :

Le code suivant nous permet de se connecter à notre serveur MySql :

<?php
$servername = "NomServeur";
$username = "username";
$password = "password";
//Créer une connexion
$conn = new mysqli($servername, $username, $password);
// Vérifier la connexion
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo "Connecté avec succès";
?>

Si vous travaillez en locale avec wampserver vous pouvez utiliser les variable suivantes:
$servername = "127.0.0.1";
$username = "root";
$password = "";

Nous allons maintenant faire des manipulations sur une base de données. Pour cela nous allons nous servir de PhpMyAdmin qui est livré avec wampserver que nous avons installé au début du cours sur le PHP instalation PHP, et qui est facile à utiliser.

PhpMyAdmin est un ensemble de pages PHP pour manipuler MySQL. Ce n'est pas un programme, mais des pages PHP toutes prêtes dont on se sert pour gagner du temps.

Créer une base de données


Création de la base en utisant PhpMyAdmin

La première chose à faire, c'est d'ouvrir PhpMyAdmin comme suit:

Démarrez WAMP, faites un clic sur l'icône dans la barre des tâches et allez dans "phpMyAdmin".

L'accueil de PhpMyAdmin ressemble à ceci :

Accueil phpMyAdmin

On a deux parties importantes que j’ai marquées avec les numéros en bleu.
1. la liste de vos BDD Le nombre entre parenthèses, c'est le nombre de tables qu'il y a dans la base.
On a donc au moin 2 bases : information_schema, qui contient 28 tables, et mysql, qui contient elle 21 tables.(peut être que vous n'avez pas le même nombre c'est suivant la version)
2. Créer une base de données: pour créer une nouvelle base de données, tapez un nom dans le champ de formulaire à droite, cliquez sur "Créer" et C'est fait.
Ne touchez pas au bases existantes: information_schema, et mysql ..., elles servent au fonctionnement interne de mysql.

Nous allons créer une nouvelle base "test".Tapez test dans le champ de saisie puis choisissez l'Interclassement dans la zone de sélection (pour cette exemple je choisis utf8_general_ci) cliquer sur créer.
Vous aurez l’écran suivant :

phpMyAdmin créer une base

Création de la bse en utilisant du code php

L'instruction CREATE DATABASE est utilisée pour créer une base de données dans MySQL.

1- Example créer une base de données avec MySQLi orientée objet

L'exemple suivant crée une base de données nommée " mabase " :

  Copier le code

<?php
$servername = "127.0.0.1";
$username = "root";
$password = "";
$database = "test";
//Créer une connexion
$conn = new mysqli($servername, $username, $password);
// Vérifier la connexion
if ($conn->connect_error) {
  die("Connection failed: " . $conn->connect_error);
}
// Créer une base de données
$sql = "CREATE DATABASE mabase";
if ($conn->query($sql) === TRUE) {
  echo "Base de données créée avec succès";
} else {
  echo "Erreur lors de la création d'une base de données: " . $conn->error;
}
// Fermer la connexion
$conn->close();
?>

Remarque : Quand vous créez une nouvelle base de données, vous devez uniquement spécifier les trois premiers arguments de l'objet mysqli (nom de serveur, nom d'utilisateur et mot de passe).

Conseil : Si vous devez utiliser un port spécifique, ajoutez une chaîne vide pour l'argument nom de la base de données, comme ceci : new mysqli("localhost", "username", "password", "", port)

2- Exemple création d'une base de données avec MySQLi procédural

Code

  Copier le code

<?php
$servername = "localhost";
$username = "username";
$password = "password";

// Créer une connexion
$conn = mysqli_connect($servername, $username, $password);
// Verifier la connexion
if (!$conn) {
  die("la connexion a échouée: " . mysqli_connect_error());
}

// Création de la base de données "mabase"
$sql = "CREATE DATABASE mabase";
if (mysqli_query($conn, $sql)) {
  echo "Base de données créée avec succès";
} else {
  echo "Erreur lors de la création d'une base de données: " . mysqli_error($conn);
}
mysqli_close($conn);
?>

3- Exemple cr&ation d'une base de données PDO

L'exemple PDO suivant crée une base de données nommée "maDBPDO" :

Code php

  Copier le code

<?php$servername = "localhost";
$username = "username";
$password = "password";

try {
  $conn = new PDO("mysql:host=$servername", $username, $password);
  // définir le mode d'erreur PDO sur exception
  $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  $sql = "CREATE DATABASE maDBPDO";
  // utiliser la fonction exec() car aucun résultat n'est renvoyé
  $conn->exec($sql);
  echo "base de données crée avec succés
"; } catch(PDOException $e) { echo $sql . "
" . $e->getMessage(); } $conn = null; ?>

Pour la création de la base sur le serveur distant, généralement les heberdeurs mette à votre diposition un logiciel pour la gestion des bases de données.
Et donc il faut se renseigner au près de votre hébergeur.

Créer une table dans la base de données


On va créer une table dans la base.
Dans le champ "Créer une nouvelle table sur la base test", tapez le nom "news" et Nombre de colonnes: "3" :
Cliquez sur "Exécuter".

Vous avez maintenant un formulaire à remplir pour indiquer les noms des champs(colonnes) et les données qu'ils peuvent contenir.
On va donc créer 3 champs pour cette table comme suit:
* id : nous allons créer un champ appelé "id". C'est le numéro d'identification. Grâce à lui, toutes vos entrées seront numérotées. Il y aura ainsi la news n°0, n°1, n°2 etc...
Une entrée c’est une ligne dans la table.
* titre : ce champ contiendra le titre de la news.
* contenu : ce champ contiendra la news en elle-même.
Alors dans le premier champ tapez id et dans la liste déroulante en dessous choisissez int cequi veut dire que c'est un entier.

Dans le second champ tapez titre et dans la liste déroulante en dessous choisissez text.
Et en fin dans le troisième tapez contenu et dans la liste déroulante en dessous choisissez aussi text.
Il faut donc définir quel type de données contiendra le champ. Un champ peut contenir du texte, des nombres, des dates etc...
Les différents types de données vous les avez dans la liste déroulante type, mais voici l’explication de quelques types les plus utilisés :

* INT : nombre entier. Il y a plusieurs, selon la grandeur des nombres que peut comporter.
Dans l'ordre, il y a :
TINYINT (très petit, inférieur ou égale à 255 ),
SMALLINT (jusqu'à 30 000),
MEDIUMINT (8 000 000),
INT (2 000 000 000),
BIGINT (très grand).
* TEXT : du texte. Là encore il y a plusieurs variantes.
* DATE : date dont la forme peut être : "YYYY-MM-DD", "YY-MM-DD" ou "YYMMDD"
* TIME : l'heure, dont la forme peut être : "HH:MM:SS" ou "HHMMSS" ou "HHMM" ou "HH".
* DATETIME : mélange la date et l'heure, dont la forme peut être : "YYYY-MM-DD HH:MM:SS"
* BLOB : plus particulier. Il permet de stocker des fichiers dans la base de données.

Pour le premier champ, id, cochez la case "A.I." qui signifie "auto_increment" , et choisissez "Primary" pour les options d'Index, ça accélèrera les recherches dans votre table.
Cliquez enfin sur "Sauvegarder" ou enregistrer en bas.

Nous allons remplir la table et créer notre première entrée (c’est à dire ligne).
Cliquez sur l’onglet insérer.

Ne rien mettre pour id car il est automatique.
Pour le titre tapez le titre que vous voulez par exemple : Ma première news.
Pour le contenu tapez le texte de votre news par exemple : c’est ma première news je suis heureux.

Cliquez sur exécuter.

Refaites la même chose 2 ou 3 fois pour avoir plusieurs entrées si vous voulez.
Pour afficher le contenu de votre table clique sur l’onglet afficher ou sur la table news à droite.
Vous pouvez modifier votre news en cliquant sur l’icône en forme de crayon. Ou supprimer en cliquant sur l’icône en croix rouge etc. …

Nous allons expliquer les 6 onglets suivants :
* SQL
* Importer
* Exporter
* Opérations
* Vider
* Supprimer

L'onglet SQL

Cliquez sur l’onglet SQL. Vous aurez ça :

phpMyAdmin faire une requête

Ici vous pouvez exécuter ce que l'on appelle des requêtes SQL pour demander à Mysql de faire quelque chose.
Dans la grande zone de texte, vous pouvez taper des requêtes SQL. Par exemple ici on a :
SELECT * FROM `news`
Cela signifie : "Afficher tout le contenu de la table 'news'".
Nous apprendrons ce langage SQL tout au long de ce cours.

L’onglet "Exporter".


C'est ici que vous allez pouvoir récupérer votre base de données sur le disque dur(ou tout autre support) sous forme de fichier texte.
On peut s'en servir pour deux choses :
* Transmettre votre base de données sur Internet : pour le moment, votre base de données se trouve sur votre disque dur. Mais si vous êtes hébergés sur Internet, on va utiliser ce fichier généré pour "reconstruire" la base de données. Ainsi, sur Internet vous aurez la même base de données et votre site web pourra l'utiliser !
* Faire une copie de sauvegarde de la base de données : si vous faites une bêtise ou qu'un hacker détruit toutes les informations sur votre site (dont la base de données), vous serez bien content d'avoir une copie de secours sur votre disque dur.

L'onglet importer


Cliquez sur Importer
Dans la page qui s'affiche, vous pouvez envoyer un fichier de requêtes SQL (généralement un fichier .sql) à MySQL pour qu'il les exécute.
Seul le premier champ en haut devrait nous intéresser : il nous permet d'indiquer un fichier sur notre disque dur contenant des requêtes SQL à exécuter (le fichier qu’on a créé avec exporter par exemple).

L'onglet Opérétion

Cliquez sur Opérations
Vous pouvez faire ici diverses opérations sur votre table.
Je ne vais pas les énumérer une à une, ni vous expliquer comment elles fonctionnent vu que c'est très simple.
Sachez simplement que vous pourriez avoir besoin de :
* Changer le nom de la table : indiquez le nouveau nom pour cette table.
* Déplacer la table : si vous voulez mettre cette table dans une autre base de données.
* Copier la table : faire une copie de la table, dans une autre base ou dans la même (attention, dans ce cas il faudra qu'elle ait un nom différent).
* Optimiser la table : à force d'utiliser une table, surtout si elle est grosse, on finit par avoir des "pertes" qui font que la table n'est plus bien organisée.
Un clic là-dessus et c'est arrangé.

L'onglet Vider

Vide tout le contenu de la table. Toutes les entrées vont disparaître, seule la structure de la table restera

L'onglet Supprimer

Pour supprimer la totalité de la table (structure + données), cliquez sur cet onglet.
Là encore, réfléchissez-y à deux fois avant de tout supprimer, car vous ne pourrez rien récupérer par la suite.
En fin comme vous n’avez pas encor de BDD pour de vrais, n’hésitez pas à tester les différentes options pour voir ce que ça donne.


La base de données de Contacts



La base de données de contacts est une base qui contient toutes les informations  pour les gens qui constitue la liste  de vos contacts, toutes ces informations pourront être éditées et lues sur internet. Les champs suivants seront utilisés dans la base de données :

Nom

Type

Longueur

Description

ID

INT

6

Un identificateur unique pour chaque enregistrement

prenom

VARCHAR

15

Prénom de la personne

nom

VARCHAR

15

Nom de la personne

Telephone

VARCHAR

20

Numéro de téléphone de la personne

Mobile

VARCHAR

20

Numéro de téléphone mobile de la personne

Fax

VARCHAR

20

Numéro de télécopieur de la personne

Email

VARCHAR

50

Adresse de courriel de la personne

Web

VARCHAR

70

Adresse web de la personne


Vous vous demandez peut-être pourquoi j'ai utilisé des champs VARCHAR pour les numéros de téléphone/fax même s'ils sont composés de chiffres. Vous pouvez utiliser des champs INT, mais je préfère utiliser VARCHAR car il permettra d’insérer les tirets, les barres obliques et les espaces entre les nombres, ainsi que les numéros textuelles.
 Le champ id sera également défini comme PRIMARY, INDEX, UNIQUE et aura la valeur auto_increment (qui se trouve sous Extra en PHPMyAdmin). La raison c’est qu'il s'agit de l'identificateur de champ (primaire et index) et donc doit être unique. Le paramètre incrément automatique signifie que chaque fois que vous ajoutez un enregistrement, l’id sera incrémenté de 1 et donc il vous sera donné le numéro suivant sauf si vous spécifiez un id.


Création de la Table en PHP avec mysqli procéduralrale


Dans ce cas nous n'allons pas faire la même chose que précédement lors de la création de table news, mais nous allons utilisé un code SQL

Le code suivant doit être utilisé pour créer cette table en PHP. Des parties du code ci-dessous n'ont pas encore été couvertes par notre cours, mais elles seront expliquer en détail dans les chapitres qui vont suivre.

Exemple :       Copier le code

<?php
$servername = "127.0.0.1";
$username = "root";
$password = "";
$database = "mabase";
//Créer une connexion
$conn = mysqli_connect($servername, $username, $password, $database);
// Vérifier la connexion
if ($conn->connect_error) {
  die("Connection failed: " . $conn->connect_error);
}

$query="CREATE TABLE contacts (id int(6) NOT NULL auto_increment,prenom
varchar(15) NOT NULL,nom varchar(15) NOT NULL,telephone  varchar(20)
NOT NULL,mobile varchar(20) NOT NULL,fax varchar(20) NOT NULL,email
varchar(50) NOT NULL,web varchar(70) NOT NULL,PRIMARY KEY (id),UNIQUE
id (id),KEY id_2 (id))";
if (mysqli_query($conn, $query)) {
  echo "Table contacts créée avec succès";
} else {
  echo "Erreur lors de la création d'une table: " . mysqli_error($conn);
}

mysqli_close($conn);
?>

Entrez le nom se votre serveur, le nom de votre base de données, l’utilisateur et le mot de passe  de votre MySQL au niveau des variables sur les premières lignes dans le code ci-dessus.

Comme nous travaillons en locale, j'ai utlisé le nom du serveur "127.0.0.1" et comme utilisateur "root" avec un password vide et la base de donnée créée précèdement "mabase"

Vous pouvez voir votre table dans phpMyAdmin onglet structure pour constater comment les colonnes de la table sont construits.

Par carabde 20 Aout 2014 mis à jour 22 mai 2022

Voir aussi nos tutoriel :

Liste de balies HTML

La liste des balises HTML que nous espérons qu’elle vous sert comme aide mémoire...

Balise html

Définit la racine d'un document HTML

border-right-color

Définit la couleur de la bordure droite