YBET

Rue Albert 1er, 7

6810 Pin - Chiny

Route Arlon - Florenville

(/fax: 061/32.00.15

La formation développer en PHP - MySQL

YBET   Créer son site Contact

10. Créer une table dans une base de donnée MySQL avec PHP

1. Syntaxe - 2. Exemple de création - 3. Supression d'une table

Dans les 2 chapitres précédents, nous avons créé une base de donnée MYSQL en local et commencer à apprendre les commandes MySQL. Cette partie va nous permettre de créer de manière automatique une base de donnée. Ces commandes sont nécessaires pour une installation automatique, mais aussi parce que tous les hébergeurs Internet n'autorise pas une gestion complète de la base de donnée par une interface propre.

La base de donnée MySQL doit être préalablement créée de manière manuelle sur votre hébergement qui vous donnera les renseignements nécessaires: nom du serveur, le login et le mot de passe d'accès. A la création, cette base de données est vide. Vous pouvez utiliser une seule base de donnée pour des applications différentes le cas échéant, à condition de ne pas insérer 2 tables sous le même nom. Cette solution est à utiliser pour la majorité des hébergements qui n'autorisent qu'une seule base de donnée, même si cette solution ralentit le traitement.

1. Syntaxe

La commande SQL associée est CREATE TABLE [IF NOT EXIST] nom_table (definition-colonne, Index)

Si une table du même nom existe dans la base de donnée, un message d'erreur est renvoyé. Si vous utilisez la commande optionnelle IF NOT EXIST, non seulement il n'y a pas de message d'erreur, mais la table n'est pas non plus créée.

la partie définition-colonne reprend:

Dans Index, on retrouve

Ces notions ont déjà été vues dans le chapitre "créer une base de donnée en local"

2. Exemple de création

Nous allons créer une table dans notre base de donnée YBET dont le nom est CONTENU. Voici la liste des champs à insérer:

  types de variable primary-key, Index remarque Instruction SQL
code numérique, integer Primary-key auto incrémentation code int primary key NOT NULL auto_increment
titre VARCHAR(120)   titre de l'annonce limitée à 120 caractères, insensible à la casse titre varchar(120) not null
description TEXT   texte limité à 65535 caractères description blob not null
photo varchar(255)   adresse et nom de la photo, 255 caractères photo varchar(255)
Ville VARCHAR(40) index caractère limité à 40 caractères ville varchar(40), index(ville)
Pays type enum   choix entre Belgique, France, Luxembourg pays enum('Belgique','France','Luxembourg')
prix decimal(10,2)   décimal avec 2 chiffres derrière la virgule prix decimal(8,2) not null
dateinsertion date   date courte dateinsertion date
telephone varchar(15)     telephone varchar(15)
mail varchar(30)     mail varchar(30)

Nous pourrons éventuellement créer des champs supplémentaires ou modifier les attributs des champs par la suite. Dans notre version locale sous EasyPhp, le serveur est localhost, le login est root, sans mot de passe.

<?php
if(!mysql_connect('localhost','root'))
{
Echo'Connection Impossible';
exit();
} else{
Echo'Connexion réussie';
}
Mysql_select_db('ybet');
// cette partie ouvre la base de donnée
$requete="CREATE TABLE if not exists contenu (code int primary key NOT NULL auto_increment,titre varchar(120) not null,description TEXT not null,photo varchar(255),ville varchar(40),pays enum('Belgique','France','Luxembourg'),prix decimal(8,2) not null,dateinsertion date,telephone varchar(15),mail varchar(30),index(ville))";
$erreur=mysql_query($requete);
$erreur1=mysql_error();
print($erreur."<br>");
print($erreur1);
mysql_close();
?>

L'ensemble des commandes ont déjà étés vues dans les chapitres précédents. La difficulté est de créer la requête SQL. Chaque champ est séparé par une virgule.

Dans le cas de l'index, il peut être inséré juste derrière le champs ou à la fin de la requête: Index(ville(10)) indexe seulement sur les 10 premiers caractères du champ ville.

3. Suppression d'une table

Vous pouvez supprimer une table dans une base de donnée existante par la commande SQL: DROP table [if exists] nom_table (, nom_table1, ...)

Par exemple, pour supprimer la table contenu ci-dessus, utilisez les lignes de commandes PHP

<?php

 if(!mysql_connect('localhost','root')){

  Echo'Connection Impossible';

 exit();

 } else{

    Echo'Connexion réussie';

}

Mysql_select_db('ybet');

 // cette partie ouvre la base de donnée

 $requete="DROP table if exists contenu";

 $valeur=mysql_query($requete);

 $erreur1=mysql_error();

 print($valeur."<br>");

 print($erreur1); 

 mysql_close();

?>

Il vous reste à copier les codes ci-dessus dans le dossier www de Easyphp et d'exécuter les différentes requêtes pour essayer ces commandes et les adapter à votre propre utilisation. Remarquez que ces commandes sont automatiquement exécutées par le programme d'installation lorsque vous installez un forum, un portal, un livre d'or, site de vente en ligne, ... sous licence GPL. Les commandes DROP sont également utilisables dans la console MYPHPADMIN de votre hébergement Internet.

10.a > Exercice: un formulaire de contact

<9 . Gérer une base de donnée MySQL