Créer une table MySQL

Attention, depuis PHP 5.5.0, certaines extensions SQL sans doute utilisées dans ce tutoriel peuvent être obsolètes et seront supprimées dans le futur, vous devez donc adapter les codes! Exemples ici.
L'administration de votre Bdd ce fait grace à phpMyAdmin qui est un logiciel libre écrit en PHP destiné à gérer l'administration de MySQL.


Dans cette exemple, j'utilise une base de données créée sous Free.fr. Lors de la demande d'ouverture de votre espace perso. sous Free.fr, Free vous demande si vous souhaitez activer votre base de données MySQL .. activer là. Vous aurrez par la suite accès à votre base de données par l'url http://sql.free.fr/phpMyAdmin. Les bases de données se ressemblant, vous ne trouverez aucune difficultée si votre site est hébergé autre que sous Free lol.

L'accueil de PhpMyAdmin ressemble à ceci :

PhpMyAdmin

creer_mon_site est le nom de la base qui a été créé automatiquement par Free. On constate juste en dessous que aucune table n'a été trouvée dans cette base..normal  puisqu'elle est videlol.

Création d'une table sous PhpMyAdmin

Nous allons donc créer une table que nous allons nomé "COMMENTAIRES' et qui contiendra 4 champs.

Création d'une table

Après avoir cliqué sur « Exécuter », vous allez vous retrouver face à un tableau de 4 lignes, chacune représentant un champ de votre future table.

La prochaine étape ressemble à ceci:

Création d'un table suite

Dans cette étape, nous allons remplir les différents champs et c'est la que ça ce complique un peut.

Création d'une table suite

Champ

  • Nom du champ (maximum 64 caractères)

Type

  • CHAR: Chaîne de caractères de longueur fixe. Longueur maximale comprise entre 1 et 255
  • VARCHAR: Chaîne de caractères de longueur variable. Longueur maximale comprise entre 1 et 255
  • TINYTEXT: Texte de longueur variable pouvant aller jusqu'à 255 caractères
  • TEXT: Texte de longueur variable pouvant aller jusqu'à 65535 caractères
  • MEDIUMTEXT: Texte de longueur variable pouvant aller jusqu'à 16777215 caractères
  • LONGTEXT: Texte de longueur variable pouvant aller jusqu'à 4294967295 caractères
  • BLOB: Les types TINYBLOB, BLOB, MEDIUMBLOB et LONGBLOB sont identiques à leurs homologues TEXT à la différence que les recherches sur un type BLOB sont sensibles à la casse
  • TINYINT: Entier codé sur un octet . Valeurs: de -128 à 127 (0 à 255 en unsigned) (char)
  • SMALLINT: Entier codé sur 2 octets. Valeurs de -32768 à 32767 (0 à 65535 en unsigned) (small int)
  • MEDIUMINT: Entier codé sur 3 octets. Valeurs de -8388608 à 8388607 (0 à 16777215 en unsigned)
  • INT: Entier codé sur 4 octets. Valeurs de -2147483648 à 2147483647 (0 à 4294967295 en unsigned) (int)
  • BIGINT: Entier codé sur 8 octets. Valeurs de -9223372036854775808 à 9223372036854775807 (0 à 18446744073709551615 en unsigned) (__int64)
  • FLOAT: Décimal en précision simple, codé sur 4 octets. Valeurs -3.402823466*1038 à -1.175494351*10-38 et de 1.175494351*10-38 à 3.402823466*1038 (float)
  • DOUBLE: Décimal en double précision, codé sur 8 octets. Valeurs -1.7976931348623157*10308 à -2.2250738585072014*10-308 et de 2.2250738585072014*10-308 à 1.7976931348623157*10308 (double)
  • DECIMAL: Décimal sous forme de chaîne de caractères (la taille est variable: 1 chiffres => 1 caractère)
  • DATE: Date au format aaaa-mm-jj
  • DATETIME: Date au format aaaa-mm-jj hh:mm:ss
  • TIMESTAMP: Sans informations supplémentaires, équivalent au DATETIME mais sans les séparateurs. Possibilité de créer un TIMESTAMP incomplet (par exemple AAMMJJHH). Remarque: En PHP, un TIMESTAMP est un entier représentant le nombre de secondes écoulées depuis le 1er janvier 1970, tandis qu'en MySQL, comme nous venons de le voir, il s'agit d'une date formatée.
  • TIME: Heure au format hh:mm:ss
  • YEAR: Année au format aaaa
  • ENUM: Permet de représenter un ensemble défini de valeurs choisies lors de la création de la table (peut aussi prendre la valeur nulle). On peut l'associer à un ensemble de champs radios: Une valeur parmi un ensemble est choisie.
  • SET: Identique que le type ENUM à la différence que l'on peut choisir plusieurs des valeurs possibles. On peut l'associer à un ensemble de checkboxs.

Taille/Valeur:

- Dans le cas d'entiers, cela permet de spécifier le nombre de chiffres: INT(3) ne permet que de -999 à 999
- Dans le cas de VARCHAR ou de CHAR, cela permet de spécifier le nombre de caractères maximal
- Dans le cas de TIMESTAMP, cela spécifie sa longueur: TIMESTAMP(10) -> AAAAMMJJHH
- Dans le cas de SET ou ENUM, cela permet de spécifier les valeurs possibles. Pour un champ qui peut
prendre les valeurs 1, 5, n : '1', '5', 'n'

Attributs:

  • BINARY: Pour les chaînes de caractères: Rend les recherches sensibles à la casse
  • UNSIGNED: Nombre non-signé
  • UNSIGNED ZEROFILL: Nombre non-signé avec remplissage des 0 non siginificatifs (9 -> 00000009,par exemple)

Null

  • null: Le champ peut avoir la valeur nulle
  • not nul: Le champ ne peut pas avoir la valeur nulle

Défaut

Représente la valeur par défaut: Si on est spécifie pas de valeur lors de l'insertion d'une ligne, cette valeur sera utilisée.

Extra

  • auto_incremant: Lors de l'insertion, on ne spécifie pas de valeur pour ce champ qui prendra automatiquement une valeur: 1, 2, 3, 4, 5 ... Utile pour les index dont on ne veut pas se préoccuper.

Primaire

Crée une clé primaire. C'est utile pour identifier chaque enregistrement de manière unique.

Index

Crée un index, tout comme Primary sauf qu'il peut y avoir des doublons.

Unique

Exclu les doublons pour la colonne crée avec l'option Unique.

Reprenons à l'étape précédente et sauvegardons notre table en cliquand sur le bouton "Sauvegarder".

Table créé

Vous constatez alors dans la colonne de gauche que la table "COMMENTAIRES" a été créée, dailleurs, PhpMyAdmin vous le dit gentiment et en plus il vous donne la requête SQL qui a été éffectuée ?:

CREATE TABLE `creer_mon_site`.`COMMENTAIRES` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`pseudo` VARCHAR( 255 ) NOT NULL ,
`email` VARCHAR( 255 ) NOT NULL ,
`commentaires` VARCHAR( 255 ) NOT NULL
) ENGINE = MYISAM ;

Et voila, votre table à été créée et ce tuto pourrait prendre fin ainsi, mais non, j'en ai pas encore finit car il existe d'autres méthodes pour créer une base de données^^!

Je vais vous montrez 3 autres  façons de procéder, 2 toujours sous PhpMyAdmin et l'autre depuis un fichier PHP+SQL. C'est là, qu'intervient la requête donnée par PhpMyAdmin lors de la création de notre table...

A quoi ça me sert que PhpMyAdmin me  donne cette requête?


Maintenant que votre table est créée, je dirais à pas grand chose...alors pour bien comprendre ce qui suit, nous allons éffacer notre table "COMMENTAIRES" fraichement créée ^^!

Pour supprimer une table via PhpMyAdmin, c'est très simple. Cliquez directement sur le nom de votre table, en l'occurence "COMMENTAIRES" dans la colonne de gauche.
Effacer un table

Dans la page qui vient de s'ouvrir, cliquez sur la croix rouge de votre table. PhpMyAdmin vous dit :

Voulez-vous vraiment effectuer  : DROP TABLE `COMMENTAIRES`

Effacer une table suite

Cliquer sur "ok". Votre table est effacé! DROP TABLE, est la requête SQL qui permet d'effacer une table.

Créer une table depuis le bouton SQL sous PhpMyAdmin

Vous avez sans doute remarqué le bouton Bouton sql. Ce bouton pemet d'exécuter une ou des requêtes sur votre base de données de 2 façons différentes, l'une en écrivant directement la requête, l'autre, en important un fichier SQL.

Ecrire directement la requête SQL.

Cliquez sur le bouton bouton sql. Une nouvelle fenêtre s'ouvre comportant 3 onglets :"SQL - Importe les fichiers - Historique SQL". Restez sous l'onglet SQL et faite un copier/coller du code directement dans la fenêtre que PhpMyAdmin vous a donnez précédemment puis cliquer sur le bouton "Exécuter".

Exécuter une ou des requêtes

Votre table est à nouveau créée lol.

Importer un fichier SQL

On recommence et on efface encore notre table, vous savez comment faire maintenant ;).

Dans un premier temps, nous allons créer notre fichier SQL. Je vous rassure tout de suite, c'est super simple ^^ . Ouvrez votre éditeur de texte préféré, en l'occurence pour moi, se sera Notepad++. Faite "encore" un copier/coller de la requête SQL précédente dans votre document Notepad++. Ensuite, cliquez sur l'onglet "Langage" de Notepad++ et selectionnez SQL.

Créer un fichier sql sous Notepad++

Une fois fait, votre document prend des couleurs ^^, c'est normal, c'est de la coloration syntaxique ... enregistrez votre document au format SQL.

Enregistrer un fichier sql sous Notepad++

On retourne sous PhpMyAdmin, on re clique sur le bouton SQL Bouton SQL mais cette fois ci, on se rend sous l'onglet "Importe les fichiers". On clique sur le bouton "Parcourir" pour allé chercher le fichier SQL sur votre ordinateur. Une fois fait, on clique sur le bouton "Exécuter".

Importer un fichier sql

Et voila, la table "COMMENTAIRES" est de nouveau en place lol!

Créer une table avec PHP et SQL

Si vous vous souvenez bien du précédent tuto sur la Présentation de MySQL, j'ai stipulé que SQL avait besoin de PHP pour "communiquer" avec MySQL (base de données). Nous y voici enfin et nous allons voir en détail comment faire.

1-Dans un premier temps, on efface une fois de plus notre table "COMMENTAIRES" .. bhaa ouai, sinon vous ne verrez rien puisque votre table est déjà créée!
2-Seconde étape, vous créez avec Notepad++ un nouveau fichier dont le langage sera du PHP.
3-Faites ensuite un copier/coller du code ci-dessous dans votre document.
4-Modifiez les 4 variables permettant de vous connectez à votre base de données.
5-Enregistrez votre fichier ou vous souhaitez et avec le nom que vous souhaitez en prenant soin de bien sélectionner comme type PHP.
6-Envoyez votre fichier par FTP sur votre serveur.
7-Allez sur votre site à l'adresse de votre fichier (ex:http://mon-site.free.fr/teste-sql.php).

Là, 2 possibilitées s'ouvrent à vous:

1-Tout c'est bien passé et vous obtenez le méssage :"La table a été créée." Par acquis de conscience, vérifiez sous PhpMyAdmin si votre table est bien là. Une actualisation de la page PhpMyAdmin peut être faite si vous ne la voyez pas au premier coup d'oeil.

2-Vous avez un ou des messages d'erreurs à l'adresse de votre fichier? Vous avez mal renseigné vos données de connexion et/ou vous avez des erreurs dans votre code. Dans tout les cas, les erreurs sont affichées dans votre fichier avec la ligne correspondante.

Si vous obtenez une erreur du type Warning: mysql_connect() ou Warning: mysql_select_db(), c'est une erreur dans vos identifiants de connexion!
<?php
//Données pour la connexion à la base de données
$nom_du_serveur ="free.fr";
$nom_de_la_base ="creer_mon_site";
$nom_utilisateur ="creer_mon_site";
$passe ="***";
 
//Connexion à la base de données
mysql_connect("$nom_du_serveur","$nom_utilisateur","$passe");
mysql_select_db("$nom_de_la_base") OR die( "ERREUR de connexion : " . mysql_error () );
 
//Requête pour créer la TABLE COMMENTAIRES
$sql = mysql_query( 'CREATE TABLE IF NOT EXISTS `COMMENTAIRES` ( 
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`pseudo` VARCHAR( 255 ) NOT NULL ,
`email` VARCHAR( 255 ) NOT NULL ,
`commentaires` VARCHAR( 255 ) NOT NULL)'
);   //Si il y a une erreur, on crie ^^ if (!$sql) { die ( 'Erreur de requête : ' . mysql_error() ); } //Si tout va bien else { echo 'La table a été créée.'; } //Déconnexion mysql_close(); ?>

Et si on étudiait un peut le code pour comprendre ce qu'il fait?

Les 4 premières variables contiennent vos données de connexions à votre base de données.
mysql_connect();  Ouvre une connexion à un serveur MySQL avec les données fournit dans les variables "$nom_du_serveur","$nom_utilisateur","$passe".
mysql_select_db("$nom_de_la_base") Sélectionne la base de données MySQL fournit dans la variable "$nom_de_la_base".
OR die( "ERREUR de connexion : " . mysql_error () ); L'utilisation de la fonction die() permet d'arrêter le script si il n'a pas réussi à se connecter au serveur et retourne le texte associé avec l'erreur générée.
mysql_query();Permet d'envoyer une requête au serveur MySQL. En l'occurence, la requête SQL est stoqué dans la variable $sql.
CREATE TABLE IF NOT EXISTS `COMMENTAIRES` signifie en gros de créer la table "COMMENTAIRES" si elle n'existe pas avec les arguments qui suivent.
Pour le reste, le code est suffisament détaillé pour comprendre à quoi ça sert .

Petite note : Les 4 premières variable ne sont pas indispensables si vos identifiants de connexion sont entrées de la façon suivante:
...
//Connexion à la base de données
mysql_connect("free.fr","creer_mon_site","***");
mysql_select_db("creer_mon_site") OR die( "ERREUR de connexion : " . mysql_error () );
...

Ce tutorielle sur la création d'une table MYSQL est enfin finit .. je vais me coucher !

Voir/déposer un commentaire (0) | Signaler un problème