34
Bases de données et Internet avec PHP et MySQL Magali Contensin © Dunod 2004 Le cours en ligne PHP-MySQL a été actualisé, amélioré, complété et transformé en livre publié dans la collection Sciences Sup aux éditions Dunod . Vous pouvez consulter la table des mati è res et les codes sources du livre. Sommaire : Chapitre 1 WEB : notions de base Chapitre 2 HTML Chapitre 3 PHP : les bases Chapitre 4 PHP : communication Chapitre 5 Bases de données et MySQL Chapitre 6 Etude de cas : gestion de la carte d'un fast-food sur Internet Annexe A XHTML Annexe B Feuilles de style en cascades Annexe C API PHP-MySQL Compl é ments en ligne (format pdf) : Annexe D. Bases, bits et octets Annexe E. Norme ISO-8859-1 et entités HTML Annexe F. Eléments et entités HTML Page 1 sur 1 Livre bases de donnees et internet avec PHP et MySQL 15/12/2004 http://www.cmi.univ-mrs.fr/~contensi/bd_internet/index.html

Bases de données et Internet avec PHP et MySQL · Système de Gestion de Bases de Données Relationnelles) client-serveur : La Base de Données est une collection de données structurées,

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Bases de données et Internet avec PHP et MySQL · Système de Gestion de Bases de Données Relationnelles) client-serveur : La Base de Données est une collection de données structurées,

Bases de données et Internet avec PHP et MySQL

Magali Contensin © Dunod 2004

Le cours en ligne PHP-MySQL a été actualisé, amélioré, complété et transformé en livre publié dans la collection Sciences Sup aux éditions Dunod.

Vous pouvez consulter la table des matières et les codes sources du livre.

Sommaire :

� Chapitre 1 WEB : notions de base � Chapitre 2 HTML � Chapitre 3 PHP : les bases � Chapitre 4 PHP : communication � Chapitre 5 Bases de données et MySQL � Chapitre 6 Etude de cas : gestion de la carte d'un fast-food sur Internet � Annexe A XHTML � Annexe B Feuilles de style en cascades � Annexe C API PHP-MySQL

Compléments en ligne (format pdf) :

� Annexe D. Bases, bits et octets � Annexe E. Norme ISO-8859-1 et entités HTML � Annexe F. Eléments et entités HTML

Page 1 sur 1Livre bases de donnees et internet avec PHP et MySQL

15/12/2004http://www.cmi.univ-mrs.fr/~contensi/bd_internet/index.html

Nicolas Revault
Page 2: Bases de données et Internet avec PHP et MySQL · Système de Gestion de Bases de Données Relationnelles) client-serveur : La Base de Données est une collection de données structurées,

Introduction

Démarrer

Références rapides SQLTables

Expressions

Informations

API phpIntroduction

Lire les données

Gerer les données

Fonctions php pour MySQL

menu mysql : ANCIEN SUPPORT EN LIGNE, base de l'ouvrage (~= Chp. 5, sauf qqs points...)

15/12/2004file://C:\Documents%20and%20Settings\Nicolas%20REVAULT\Mes%20documents\Doc\Enseign\Cergy\TicTic\Archives\03-04\2003-...

Nicolas Revault
Nicolas Revault
Page 3: Bases de données et Internet avec PHP et MySQL · Système de Gestion de Bases de Données Relationnelles) client-serveur : La Base de Données est une collection de données structurées,

Introduction Ce cours est un "kit de survie" pour utiliser MySQL dans le cadre des applications Internet. C'est-à-dire qu'il supposera qu'un administrateur a créé votre base de données et vous a fourni un login et un password. Vous allez apprendre dans ce cours la manière de créer vos tables, et ce qu'il faut faire pour les remplir, modifier, supprimer. Le but de ce cours est de vous donner les bases nécessaires pour réaliser des interfaces entre MySQL et un langage de script comme Php afin de générer des pages web dynamiques.

Qu'est-ce que MySQL ? MySQL est un SGBDR (Système de Gestion de Bases de Données Relationnelles) client-serveur :

� La Base de Données est une collection de données structurées, elle comporte des : � tables, i.e. des collections de données (ex. les pages blanches du 13 contiennent le nom, le prénom, l'adresse et le numéro de téléphone de

tous les particuliers qui habitent dans les Bouches du Rhône, c'est une table que nous nommerons ANNUAIRE) � rangées, une rangée est un enregistrement dans la table (ex. un particulier : Talon / Achile / 8, rue d'Athènes 13001 Marseille / 04 91 30 20

10) � colonnes : les colonnes seront dans notre exemple nom, prénom, adresse, numéro de téléphone) � enregistrements, i.e. des données.

� le Système de Gestion est un logiciel utilisé pour insérer, modifier, supprimer, lire des enregistrements. � le modèle Relationnel permet de stocker les informations dans des tables séparées et d'associer des données d'une table à celles d'une autre table

(on peut imaginer que l'adresse ne soit pas stockée dans une colonne de la table ANNUAIRE mais dans une table ADRESSE qui permette de décomposer l'adresse en colonnes NumRue, NomRue, CodePostal, Ville).

MySQL est client-serveur :

� le serveur est une application installée sur l'ordinateur où sont stockées les données, il attend des requêtes des clients, accède à la base pour exécuter la requête du client et lui fournir une réponse ;

� le client est un programme installé sur votre ordinateur qui se connecte par l'intermédiaire d'un réseau au serveur pour effectuer une requête ;

MySQL comporte :

� un serveur SQL (Structured Query Language) ; � des programmes clients pour accéder au serveur (mysql, mysqldump, mysqlimport) ; � des outils d'administration ;

Page 1 sur 2Cours MySQL : Introduction

15/12/2004file://C:\Documents%20and%20Settings\Nicolas%20REVAULT\Mes%20documents\Doc\Enseign\Cergy\TicTic\Archives\03-04\2003-...

Page 4: Bases de données et Internet avec PHP et MySQL · Système de Gestion de Bases de Données Relationnelles) client-serveur : La Base de Données est une collection de données structurées,

� une interface de programmation pour écrire des applications.

Avantages � très rapide ; � multi-utilisateurs ; � disponible sur Internet (http://www.mysql.com) ; � gratuit (sauf si vous commercialisez un service ou un logiciel qui utilise MySQL) ; � facile à utiliser, un manuel de référence est fourni ; � interfaces de programmation (API) : C, Perl, PHP, Python et Java ; � langage de requête : SQL (langage de requête le plus répandu) ; � portabilité, MySQL fonctionne sous :

� unix et linux ; � solaris (OS/2) ; � Mac Os X server ; � windows.

� open software, i.e. le code source est disponible (les bugs sont corrigés par la communauté et des nouvelles versions sont disponibles sur Internet dès que les corrections sont effectuées).

Page 2 sur 2Cours MySQL : Introduction

15/12/2004file://C:\Documents%20and%20Settings\Nicolas%20REVAULT\Mes%20documents\Doc\Enseign\Cergy\TicTic\Archives\03-04\2003-...

Page 5: Bases de données et Internet avec PHP et MySQL · Système de Gestion de Bases de Données Relationnelles) client-serveur : La Base de Données est une collection de données structurées,

Démarrer MySQL Se connecter à MySQL Si l'administrateur vous a donné la permission de vous connecter à une base de données et de créer des tables (vous avez un login et un password) vous pouvez établir une connexion avec le serveur sur votre console (le $ est le caractère que vous avez en début de ligne de commande sur la console) en tapant :

$ mysql options nombase

NB : nombase est optionnel, c'est le nom de la base que vous voulez charger (si elle existe déjà).

Si l'utilisateur jollyjumper dont le mot de passe est rantanplan souhaite se connecter sur le serveur lucky.luke.com, il va entrer la première ligne ci-dessous, mysql lui demande son mot de passe et s'il est correct il aura accès au serveur, ce qui se traduit par le mysql>, d'autre part pour quitter, il suffit de taper quit.

$ mysql -h lucky.luke.com -u jollyjumper -pEnter password : rantanplanWelcome to MySQL ...

mysql>quit;$

On note que jollyjumper n'a pas précisé le nom de la base à laquelle il souhaite se connecter, il peut le faire lorsqu'il est dans mysql avec USEnombase :

$ mysql -h lucky.luke.com -u jollyjumper -pEnter password : rantanplanWelcome to MySQL ...

option signification-h nomHote ordinateur qui héberge le serveur (optionnel si vous êtes sur le même ordinateur)-u nomUtilisateur votre nom d'utilisateur MySQL (optionnel si c'est le même que votre login)-p mysql vous demandera votre mot de passe

Page 1 sur 8Cours MySQL : demarrer

15/12/2004file://C:\Documents%20and%20Settings\Nicolas%20REVAULT\Mes%20documents\Doc\Enseign\Cergy\TicTic\Archives\03-04\2003-...

Page 6: Bases de données et Internet avec PHP et MySQL · Système de Gestion de Bases de Données Relationnelles) client-serveur : La Base de Données est une collection de données structurées,

mysql> USE evades;

Mais il peut également le faire directement comme nous l'avons dit au départ en écrivant :

$ mysql -h lucky.luke.com -u jollyjumper -p evades

Effectuer des requêtes

Sur la console

Lorsque vous êtes dans mysql, vous pouvez effectuer des requêtes dans la console. Pour l'instant il n'y a pas de tables dans la base evades, nous ne pouvons donc pas effectuer des requêtes sur cette table mais nous pouvons par exemple afficher la date et l'heure, puis nous demanderons la version de mysql.

$ mysql -h lucky.luke.com -u jollyjumper -pEnter password : rantanplanWelcome to MySQL ...

mysql>SELECT NOW();+---------------------+| NOW() |+---------------------+| 2000-10-13 15:16:03 |+---------------------+

mysql>SELECT NOW(),VERSION();+---------------------+------------------+| NOW() | VERSION() |+---------------------+------------------+| 2000-10-13 15:18:23 | 3.23.1 |+---------------------+------------------+

mysql>quit$

Dans un fichier

Page 2 sur 8Cours MySQL : demarrer

15/12/2004file://C:\Documents%20and%20Settings\Nicolas%20REVAULT\Mes%20documents\Doc\Enseign\Cergy\TicTic\Archives\03-04\2003-...

Page 7: Bases de données et Internet avec PHP et MySQL · Système de Gestion de Bases de Données Relationnelles) client-serveur : La Base de Données est une collection de données structurées,

Vous pouvez écrire vos requêtes dans un fichier (par exemple toutes les requêtes pour créer vos tables) et faire lire le fichier et exécuter les requêtes à mysql en écrivant :

$ mysql -h lucky.luke.com -u jollyjumper -p nombase < fichier.sql

Créez vos tables Supposons que jollyjumper souhaite créer dans la base evades une table individu qui recense les hors-la-loi évadés (nom, prénom, signes particuliers, prison), et une table prison qui donne le nom de la prison et son adresse (pour renvoyer le prisonnier dans la bonne prison).

JollyJumper a donc créé un fichier evades.sql qui contient :

drop table if exists individu,prison;

create table individu (nom VARCHAR(85) NOT NULL,prenom VARCHAR(50),signe_particulier VARCHAR(170),prison INT NOT NULL);

create table prison (nom_prison VARCHAR(60) NOT NULL,adresse VARCHAR(100),id_prison INT NOT NULL AUTO_INCREMENT,PRIMARY KEY(id_prison));

Chaque table est créée avec : create table nom_table ( description_colonnes ); le drop table situé au début du fichier efface la table si elle existe déjà (utile pour réinitialiser une table, ou dans le cas où votre fichier sql contient des erreurs et où vous le lancez plusieurs fois).

Lorsque JollyJumper demandera à mysql de créer les tables en appelant le fichier evades.sql, il entrera son mot de passe, les tables seront créées et mysql quittera automatiquement.

$ mysql -h lucky.luke.com -u jollyjumper -p evades < evades.sqlEnter password: rantanplan$

Page 3 sur 8Cours MySQL : demarrer

15/12/2004file://C:\Documents%20and%20Settings\Nicolas%20REVAULT\Mes%20documents\Doc\Enseign\Cergy\TicTic\Archives\03-04\2003-...

Page 8: Bases de données et Internet avec PHP et MySQL · Système de Gestion de Bases de Données Relationnelles) client-serveur : La Base de Données est une collection de données structurées,

Pour vérifier si les tables sont créées il est possible de faire afficher le contenu de la base evades, i.e. le nom des tables, ainsi que les colonnes de chaque table :

$ mysql -h lucky.luke.com -u jollyjumper -p evadesEnter password: rantanplan

mysql> show tables;+------------------+| Tables in evades |+------------------+| individu || prison |+------------------+2 rows in set (0.00 sec)mysql> describe individu;+-------------------+--------------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+-------------------+--------------+------+-----+---------+-------+| nom | varchar(85) | | | | || prenom | varchar(50) | YES | | NULL | || signe_particulier | varchar(170) | YES | | NULL | || prison | int(11) | | | 0 | |+-------------------+--------------+------+-----+---------+-------+4 rows in set (0.01 sec)

mysql> describe prison;+------------+--------------+------+-----+---------+----------------+| Field | Type | Null | Key | Default | Extra |+------------+--------------+------+-----+---------+----------------+| nom_prison | varchar(60) | | | | || adresse | varchar(100) | YES | | NULL | || id_prison | int(11) | | PRI | 0 | auto_increment |+------------+--------------+------+-----+---------+----------------+3 rows in set (0.00 sec)

Insérer, modifier, supprimer des lignes dans les tables

Insérer des lignes : INSERT

INSERT INTO nom_table (nom_col1, nom_col2, ...) VALUES (val_col1, val_col2, ...);

Page 4 sur 8Cours MySQL : demarrer

15/12/2004file://C:\Documents%20and%20Settings\Nicolas%20REVAULT\Mes%20documents\Doc\Enseign\Cergy\TicTic\Archives\03-04\2003-...

Page 9: Bases de données et Internet avec PHP et MySQL · Système de Gestion de Bases de Données Relationnelles) client-serveur : La Base de Données est une collection de données structurées,

Les frères Dalton s'étant évadés vous souhaitez les insérer dans la table des individus (la référence 3 correspond à l'identifiant d'une prison) :

mysql> INSERT INTO individu (nom, prenom, signe_particulier, prison)VALUES ('Dalton', 'Joe', 'chef','3');

Query OK, 1 row affected (0.00 sec)

Après avoir rentré les quatre frères vous pouvez regarder le contenu de la table individu :

mysql> select * from individu;+--------+---------+--------------------+--------+| nom | prenom | signe_particulier | prison |+--------+---------+--------------------+--------+| Dalton | Joe | chef | 3 || Dalton | Jack | taille moyenne | 3 || Dalton | William | relativement grand | 3 || Dalton | Averell | grand | 3 |+--------+---------+--------------------+--------+4 rows in set (0.01 sec)

Modifier des lignes : UPDATE

UPDATE nom_table SET nom_col1=valeur1, nom_col2=valeur2, ... WHERE identifiant

Vous avez oublié une caractéristique essentielle de Averell Dalton, vous pouvez modifier l'entrée

mysql> UPDATE individu SET signe_particulier='grand et bete'WHERE nom='Dalton' AND prenom='Averell';

Query OK, 1 row affected (0.00 sec)Rows matched: 1 Changed: 1 Warnings: 0

Vous pouvez vérifier que la modification a été réalisée :

mysql> select * from individu where prenom='Averell';+--------+---------+-------------------+--------+| nom | prenom | signe_particulier | prison |+--------+---------+-------------------+--------+| Dalton | Averell | grand et bete | 3 |+--------+---------+-------------------+--------+1 row in set (0.00 sec)

Page 5 sur 8Cours MySQL : demarrer

15/12/2004file://C:\Documents%20and%20Settings\Nicolas%20REVAULT\Mes%20documents\Doc\Enseign\Cergy\TicTic\Archives\03-04\2003-...

Page 10: Bases de données et Internet avec PHP et MySQL · Système de Gestion de Bases de Données Relationnelles) client-serveur : La Base de Données est une collection de données structurées,

Supprimer des lignes : DELETE

DELETE from nom_table WHERE identifiant

Lucky Luke vient de capturer Jack Dalton, les trois autres sont toujours en fuite, vous aller supprimer Jack de la table des évadés et vérifier le contenu de la table après suppression :

mysql> DELETE from individu WHERE nom='Dalton' AND prenom='Jack';Query OK, 1 row affected (0.00 sec)

mysql> select * from individu;+--------+---------+--------------------+--------+| nom | prenom | signe_particulier | prison |+--------+---------+--------------------+--------+| Dalton | Joe | chef | 3 || Dalton | William | relativement grand | 3 || Dalton | Averell | grand et bete | 3 |+--------+---------+--------------------+--------+3 rows in set (0.00 sec)

Effectuer une recherche JollyJumper souhaite obtenir toutes les lignes de la table individu :

mysql> select * from individu;+----------+------------+----------------------+--------+| nom | prenom | signe_particulier | prison |+----------+------------+----------------------+--------+| Dalton | Joe | chef | 3 || Calamity | Jane | femme | 1 || Dalton | William | relativement grand | 3 || Dalton | Averell | grand et bete | 3 || Bonney | William H. | Billy The Kid, gamin | 2 || Malloy | Bert | desperado peu connu | 2 || Dalton | Jack | moyen | 3 |+----------+------------+----------------------+--------+7 rows in set (0.00 sec)

Pour obtenir uniquement les colonnes nom, prenom et signe_particulier, il suffit de faire :

Page 6 sur 8Cours MySQL : demarrer

15/12/2004file://C:\Documents%20and%20Settings\Nicolas%20REVAULT\Mes%20documents\Doc\Enseign\Cergy\TicTic\Archives\03-04\2003-...

Page 11: Bases de données et Internet avec PHP et MySQL · Système de Gestion de Bases de Données Relationnelles) client-serveur : La Base de Données est une collection de données structurées,

mysql> select nom, prenom, signe_particulier from individu;+----------+------------+----------------------+| nom | prenom | signe_particulier |+----------+------------+----------------------+| Dalton | Joe | chef || Calamity | Jane | femme || Dalton | William | relativement grand || Dalton | Averell | grand et bete || Bonney | William H. | Billy The Kid, gamin || Malloy | Bert | desperado peu connu || Dalton | Jack | moyen |+----------+------------+----------------------+7 rows in set (0.00 sec)

Pour classer par ordre alphabétique en fonction du nom et du prénom :

mysql> select nom, prenom, signe_particulier from individu order by nom,prenom;+----------+------------+----------------------+| nom | prenom | signe_particulier |+----------+------------+----------------------+| Bonney | William H. | Billy The Kid, gamin || Calamity | Jane | femme || Dalton | Averell | grand et bete || Dalton | Jack | moyen || Dalton | Joe | chef || Dalton | William | relativement grand || Malloy | Bert | desperado peu connu |+----------+------------+----------------------+7 rows in set (0.00 sec)

Pour savoir de quelle prison les hors-la-loi se sont enfuis :

mysql> select nom, prenom, nom_prison from individu, prisonwhere id_prison=prison order by nom, prenom;+----------+------------+-------------------------+| nom | prenom | nom_prison |+----------+------------+-------------------------+| Bonney | William H. | prison de Fort Weakling || Calamity | Jane | prison de Gun Gulch || Dalton | Averell | pÈnitencier || Dalton | Jack | pÈnitencier |

Page 7 sur 8Cours MySQL : demarrer

15/12/2004file://C:\Documents%20and%20Settings\Nicolas%20REVAULT\Mes%20documents\Doc\Enseign\Cergy\TicTic\Archives\03-04\2003-...

Page 12: Bases de données et Internet avec PHP et MySQL · Système de Gestion de Bases de Données Relationnelles) client-serveur : La Base de Données est une collection de données structurées,

| Dalton | Joe | pÈnitencier || Dalton | William | pÈnitencier || Malloy | Bert | prison de Fort Weakling |+----------+------------+-------------------------+7 rows in set (0.01 sec)

Pour afficher uniquement les renseignements concernant les Dalton :

mysql> select nom, prenom, signe_particulier, nom_prison from individu, prisonwhere id_prison=prison and nom='Dalton' order by nom, prenom;+--------+---------+--------------------+-------------+| nom | prenom | signe_particulier | nom_prison |+--------+---------+--------------------+-------------+| Dalton | Averell | grand et bete | pÈnitencier || Dalton | Jack | moyen | pÈnitencier || Dalton | Joe | chef | pÈnitencier || Dalton | William | relativement grand | pÈnitencier |+--------+---------+--------------------+-------------+4 rows in set (0.01 sec)

Pour connaître la liste des évadés de la prison de Fort Weakling :

mysql> select nom, prenom, nom_prison, adresse from individu, prisonwhere individu.prison=prison.id_prison and prison.nom_prison='prison de Fort Weakling';+--------+------------+-------------------------+-------------------+| nom | prenom | nom_prison | adresse |+--------+------------+-------------------------+-------------------+| Bonney | William H. | prison de Fort Weakling | Fort Weakling USA || Malloy | Bert | prison de Fort Weakling | Fort Weakling USA |+--------+------------+-------------------------+-------------------+2 rows in set (0.00 sec)

Page 8 sur 8Cours MySQL : demarrer

15/12/2004file://C:\Documents%20and%20Settings\Nicolas%20REVAULT\Mes%20documents\Doc\Enseign\Cergy\TicTic\Archives\03-04\2003-...

Page 13: Bases de données et Internet avec PHP et MySQL · Système de Gestion de Bases de Données Relationnelles) client-serveur : La Base de Données est une collection de données structurées,

Références rapides SQL Tables

Création

CREATE TABLE nom_table(

nom_colonne1 TYPE ATTRIBUTS,nom_colonne2 TYPE ATTRIBUTS,...nom_colonneN TYPE ATTRIBUTS,

);

Attributs pour une colonne

� AUTO_INCREMENT : quand l'enregistrement est créé, un numéro unique est attribué ; � NOT NULL : le champ doit être obligatoirement rempli ; � NULL : les valeurs peuvent être omises ; � PRIMARY KEY : la colonne est une clé primaire ; � UNIQUE : la colonne est unique ; � UNSIGNED : pour les types numériques entiers, indique que l'entier est non négatif ; � ZEROFILL : pour les types numériques entiers et réels, sert à compléter avec des 0 l'affichage en fonction du nombre maximal de chiffres affichés ; � BINARY : pour les types chaînes CHAR et VARCHAR, indique que les valeurs des colonnes sont sensibles à la casse pour les opérations de tri,

comparaison ; � DEFAULT "valeur" : valeur par défaut du champ.

Types pour une colonne

Types numériques

Les entiers peuvent être signés () ou non signés (uniquement positifs) ce qui se traduit par UNSIGNED :

� TINYINT[(taille)] 1 octet (i.e. -127 à 128 pour un signé et 0 à 255 pour un non signé) ; � SMALLINT[(taille)] 2 octets ;

Page 1 sur 7Cours MySQL : tables

15/12/2004file://C:\Documents%20and%20Settings\Nicolas%20REVAULT\Mes%20documents\Doc\Enseign\Cergy\TicTic\Archives\03-04\2003-...

Page 14: Bases de données et Internet avec PHP et MySQL · Système de Gestion de Bases de Données Relationnelles) client-serveur : La Base de Données est une collection de données structurées,

� MEDIUMINT[(taille)]3 octets ; � INT[(taille)]4 octets ; � INTEGER[(taille)] synonyme de INT ; � BIGINT[(taille)]8 octets ;

Vous pouvez, si vous le souhaitez donner la taille maximale du nombre de chiffres affichés en précisant taille. L'attribut ZEROFILL est utilisé pour compléter avec des 0 les valeurs jusqu'à la taille maximale d'affichage. Par exemple pour un INT(6) si on entre les nombres 1, 10 et 1000 on aura un affichage sous la forme 000001, 000010 et 001000.

Réels :

� REAL[(taille,nb_decim)]synonyme de double : � DOUBLE[(taille,nb_decim)] nombre à virgule 8 octets ; � FLOAT[(taille,nb_decim)] nombre à virgule 4 octets; � DECIMAL(taille,nb_decim) nombre stocké comme une chaîne (un caractère par chiffre) ; � NUMERIC(taille,nb_decim) synonyme de décimal.

Il est possible de préciser la taille maximale d'affichage taille ainsi que la position de la virgule nb_decim.

Types chaînes

� CHAR(taille) une chaîne de longueur fixe qui occupe le nombre d'octets indiqués par taille, tout enregistrement dans la colonne aura cette taille ;

� VARCHAR(taille) une chaîne de longueur variable, un enregistrement est stocké avec le nombre d'octets nécessaire ; � TINYBLOB très petit Binary Large Object (longueur maximale autorisée : 28-1 octets) ; � BLOB un grand objet binaire (Binary Large Objetct), permet de stocker des images, textes, en fait des objets dont la taille varie pour la colonne

(longueur maximale autorisée : 216-1 octets); � MEDIUMBLOB un Binary Large Object moyen (longueur maximale autorisée : 224-1 octets) � LONGBLOB un grand Binary Large Object (longueur maximale autorisée : 232-1 octets) � TINYTEXT chaîne texte très petite (comme TINYBLOB mais recherche insensible à la casse) ; � TEXT chaîne texte, identique à un blob mais la recherche dans un type TEXT n'est pas sensible à la casse ; � MEDIUMTEXT chaîne texte de taille moyenne (= MEDIUMBLOB) ; � LONGTEXT une grande chaîne texte (= LONGBLOB) ; � ENUM(value1,value2,value3,...) la valeur de la colonne doit obligatoirement être une des valeurs de l'énumération ;

Page 2 sur 7Cours MySQL : tables

15/12/2004file://C:\Documents%20and%20Settings\Nicolas%20REVAULT\Mes%20documents\Doc\Enseign\Cergy\TicTic\Archives\03-04\2003-...

Page 15: Bases de données et Internet avec PHP et MySQL · Système de Gestion de Bases de Données Relationnelles) client-serveur : La Base de Données est une collection de données structurées,

� SET(value1,value2,value3,...) la valeur de la colonne est aucune, une ou plusieurs valeurs de l'ensemble.

Types de dates et temps

� DATE une date (l'affichage sera au format 'YYYY-MM-DD') ; � YEAR une année (l'affichage sera au format 'YYYY') ; � TIME une heure (l'affichage sera au format 'HH:MM:SS') ; � TIMESTAMP une durée (l'affichage est au format 'YYYYMMDDHHMMSS', 'YYMMDDHHMMSS', 'YYYYMMDD', ou 'YYMMDD') ; � DATETIME une date et heure (l'affichage sera au format 'YYYY-MM-DD HH:MM:SS').

NB : MySQL n'est pas sensible à la casse pour les fonctions et les mots clés, ainsi CREATE est équivalent à create. Par contre les noms des bases, tables et colonnes sous Unix seront sensibles à la casse.

Rappelons que la requête peut être entrée sur la console ou en incluant un fichier à la ligne de commande.

Informations sur les tables

Liste des tables existantes :

SHOW TABLES;

Liste des colonnes avec leurs types, les trois instructions ci-dessous sont équivalentes :

DESCRIBE nomtable;EXPLAIN nomtable;SHOW COLUMNS FROM nomtable;

Suppression d'une table

DROP TABLE [IF EXISTS] nom_table1, nom_table2, ...

L'attribut IF EXISTS évite qu'il y ait une erreur si la table n'existe pas. Il est possible de supprimer une table ou plusieurs, en utilisant une liste de noms

Page 3 sur 7Cours MySQL : tables

15/12/2004file://C:\Documents%20and%20Settings\Nicolas%20REVAULT\Mes%20documents\Doc\Enseign\Cergy\TicTic\Archives\03-04\2003-...

Page 16: Bases de données et Internet avec PHP et MySQL · Système de Gestion de Bases de Données Relationnelles) client-serveur : La Base de Données est une collection de données structurées,

de tables séparés par des virgules.

Modification d'une table

ALTER TABLE nom_table alteration

ALTER permet de changer le nom de la table, de modifier les types des colonnes, et les noms des colonnes, d'ajouter des colonnes, d'en supprimer. alteration peut prendre les valeurs : ADD, ALTER, CHANGE, MODIFY, DROP, RENAME.

Modifier le type d'une colonne

MODIFY nom_colonne definition_colonne

Prenons l'exemple vu dans le cours démarrer MySQL, et que nous souhaitons modifier le type de la colonne nom en char :

mysql> describe individu;+------------------+-------------+-----+----+--------+------| Field | Type | Null | Key | Default | Extra |+------------------+-------------+-----+----+--------+------| nom | varchar(85) | | | | || prenom | varchar(50) | YES | | NULL | || signe_particulier | varchar(170) | YES | | NULL | || prison | int(11) | | | 0 | |+------------------+-------------+-----+----+--------+------4 rows in set (0.00 sec)

mysql> alter table individu modify nom char;Query OK, 7 rows affected (0.00 sec)Records: 7 Duplicates: 0 Warnings: 7

mysql> describe individu;+------------------+-------------+-----+----+--------+------| Field | Type | Null | Key | Default | Extra |+------------------+-------------+-----+----+--------+------| nom | char(1) | YES | | NULL | || prenom | varchar(50) | YES | | NULL | || signe_particulier | varchar(170) | YES | | NULL | |

Page 4 sur 7Cours MySQL : tables

15/12/2004file://C:\Documents%20and%20Settings\Nicolas%20REVAULT\Mes%20documents\Doc\Enseign\Cergy\TicTic\Archives\03-04\2003-...

Page 17: Bases de données et Internet avec PHP et MySQL · Système de Gestion de Bases de Données Relationnelles) client-serveur : La Base de Données est une collection de données structurées,

| prison | int(11) | | | 0 | |+------------------+-------------+-----+----+--------+------4 rows in set (0.00 sec)

Modifier le nom et le type de la colonne

CHANGE ancien_nom nouveau_nom definition_colonne

Par exemple ou peut décider de rebaptiser la colonne nom en nom_hors_la_loi et de lui attribuer le type varchar(86)

mysql> alter table individu change nom nom_hors_la_loi varchar(86);Query OK, 7 rows affected (0.01 sec)Records: 7 Duplicates: 0 Warnings: 0

mysql> describe individu;+------------------+-------------+-----+----+--------+------| Field | Type | Null | Key | Default | Extra |+------------------+-------------+-----+----+--------+------| nom_hors_la_loi | varchar(86) | YES | | NULL | || prenom | varchar(50) | YES | | NULL | || signe_particulier | varchar(170) | YES | | NULL | || prison | int(11) | | | 0 | |+------------------+-------------+-----+----+--------+------4 rows in set (0.00 sec)

Ajouter une colonne

ADD nom_colonne definition_colonne [FIRST | AFTER nom_colonne]

Si on souhaite ajouter en début de la table une colonne pour stocker l'age :

mysql> alter table individu add age TINYINT UNSIGNED FIRST;Query OK, 7 rows affected (0.01 sec)Records: 7 Duplicates: 0 Warnings: 0

mysql> describe individu;+------------------+--------------------+-----+----+--------+------| Field | Type | Null | Key | Default | Extra |+------------------+--------------------+-----+----+--------+------

Page 5 sur 7Cours MySQL : tables

15/12/2004file://C:\Documents%20and%20Settings\Nicolas%20REVAULT\Mes%20documents\Doc\Enseign\Cergy\TicTic\Archives\03-04\2003-...

Page 18: Bases de données et Internet avec PHP et MySQL · Système de Gestion de Bases de Données Relationnelles) client-serveur : La Base de Données est une collection de données structurées,

| age | tinyint(3) unsigned | YES | | NULL | || nom_hors_la_loi | varchar(86) | YES | | NULL | || prenom | varchar(50) | YES | | NULL | || signe_particulier | varchar(170) | YES | | NULL | || prison | int(11) | | | 0 | |+------------------+--------------------+-----+----+--------+------5 rows in set (0.00 sec)

NB : si on avait souhaité ajouter la colonne âge après la colonne nom, on aurait écrit :

mysql> alter table individu add age TINYINT UNSIGNED AFTER prenom;

Supprimer une colonne

DROP nom_colonne

Pour supprimer la colonne age :

mysql> alter table individu drop age;Query OK, 7 rows affected (0.01 sec)Records: 7 Duplicates: 0 Warnings: 0

mysql> describe individu;+------------------+-------------+-----+----+--------+------| Field | Type | Null | Key | Default | Extra |+------------------+-------------+-----+----+--------+------| nom_hors_la_loi | varchar(86) | YES | | NULL | || prenom | varchar(50) | YES | | NULL | || signe_particulier | varchar(170) | YES | | NULL | || prison | int(11) | | | 0 | |+------------------+-------------+-----+----+--------+------4 rows in set (0.00 sec)

Changer le nom de la table

RENAME AS nouveau_nom

Par exemple, pour renommer la table individu en hors-la-loi on écrira :

Page 6 sur 7Cours MySQL : tables

15/12/2004file://C:\Documents%20and%20Settings\Nicolas%20REVAULT\Mes%20documents\Doc\Enseign\Cergy\TicTic\Archives\03-04\2003-...

Page 19: Bases de données et Internet avec PHP et MySQL · Système de Gestion de Bases de Données Relationnelles) client-serveur : La Base de Données est une collection de données structurées,

mysql> ALTER TABLE individu RENAME as horslaloi;Query OK, 0 rows affected (0.00 sec)

mysql> show tables;+-----------------| Tables in evades |+-----------------| horslaloi || prison |+-----------------2 rows in set (0.00 sec)

Page 7 sur 7Cours MySQL : tables

15/12/2004file://C:\Documents%20and%20Settings\Nicolas%20REVAULT\Mes%20documents\Doc\Enseign\Cergy\TicTic\Archives\03-04\2003-...

Page 20: Bases de données et Internet avec PHP et MySQL · Système de Gestion de Bases de Données Relationnelles) client-serveur : La Base de Données est une collection de données structurées,

Références rapides SQL Expressions Les expressions sont utilisées dans les instructions (le plus souvent dans le where d'un select). Elles peuvent appeler des fonctions, utiliser des opérateurs arithmétiques, des opérateurs logiques, des opérateurs bit à bit et des opérateurs de comparaison. Les expressions rationnelles (regular expression) sont gérées.

Opérateurs

Arithmétiques

Logiques

+ addition- soustraction* multiplication/ division% modulo-x opérateur unaire de signe

NOTnégation

!OR

ou logique||AND

et logique&&

Page 1 sur 6Cours MySQL : expressions

15/12/2004file://C:\Documents%20and%20Settings\Nicolas%20REVAULT\Mes%20documents\Doc\Enseign\Cergy\TicTic\Archives\03-04\2003-...

Page 21: Bases de données et Internet avec PHP et MySQL · Système de Gestion de Bases de Données Relationnelles) client-serveur : La Base de Données est une collection de données structurées,

Bit à bit

Comparaison

Ils retournent la valeur 1 (vrai) si la comparaison est vraie, 0 sinon.

| ou& et<< décalage à gauche>> décalage à droite

= égalité<=> semblable à = mais NULL <=> NULL est vrai!= différent<> différent< inférieur> supérieur<= inférieur ou égal>= supérieur ou égalexpr IN (val1, val2, ...) l'expression est une des valeurs donnéesexpr BETWEEN inf AND sup l'expression est entre inf et supIS NULL vrai si l'expression a la valeur NULLIS NOT NULL vrai si l'expression n'a pas la valeur NULL

"chaine" LIKE "regexp"vrai si la chaine entière correspond à l'expression rationnelle "toto" LIKE "to" retournera la valeur 0 "toto" LIKE "to%" retournera la valeur 1.

"chaine" NOT LIKE "regexp" vrai si la chaine ne correspond pas à l'expression rationnelle

chaine REGEXP regexp vrai si la chaine ou une partie de la chaine correspond à l'expression"toto" LIKE "to" retournera la valeur 1

Page 2 sur 6Cours MySQL : expressions

15/12/2004file://C:\Documents%20and%20Settings\Nicolas%20REVAULT\Mes%20documents\Doc\Enseign\Cergy\TicTic\Archives\03-04\2003-...

Page 22: Bases de données et Internet avec PHP et MySQL · Système de Gestion de Bases de Données Relationnelles) client-serveur : La Base de Données est une collection de données structurées,

Expressions rationnelles

Fonctions

Mathématiques

Correspondances et caractères

% toute chaîne to% = toto, titi..._ tout caractère tou_ = tour, tout...^ correspondance au début "tout a fait" REGEXP "^tout" = vrai

$ correspondance à la fin "tout a fait" REGEXP "tout$" = faux"c'est tout" REGEXP "tout$" = vrai

[...] tout caractère dans les crochets "tous" REGEXP "tou[rs]" = vrai "tout" REGEXP "tou[rs] = faux

[^...] tout caractère s'il n'appartient pas à ceux des crochets "tout" REGEXP "tou[^rs] = vrai[a-z] tout caractère dans l'intervalle

Indicateur d'occurrences et choix

* 0 ou ++ au moins une fois? 0 ou 1 fois{n} n fois{n,} n fois ou plus{n,m} au moins n fois et au plus mx | y x ou y

abs(x) valeur absoluesqrt(x) racine carrée

Page 3 sur 6Cours MySQL : expressions

15/12/2004file://C:\Documents%20and%20Settings\Nicolas%20REVAULT\Mes%20documents\Doc\Enseign\Cergy\TicTic\Archives\03-04\2003-...

Page 23: Bases de données et Internet avec PHP et MySQL · Système de Gestion de Bases de Données Relationnelles) client-serveur : La Base de Données est une collection de données structurées,

De temps

ceiling(x) arrondi à l'entier le plus petitfloor arrondi à l'entier le plus grandround(x,d) arrondi au nombre de décimales demandé (si l'argument d n'est pas donné ou qu'il vaut 0, réalise un arrondi à l'entier le plus proche)truncate(x, d) retourne x tronqué en fonction de la décimale (si d est à 0 retourne un entier)exp(x) exponentiellelog(x) logarithmepow(x,y) xy

rand() nombre réel aléatoiresign(x) retourne -1 si x est négatif, +1 si c'est un positif, 0 sinon.

trigonométriques

acos(x) arc cosinusasin(x) arc sinusatan(x) arc tangentecos(x) cosinuscot(x) cotangentepi() retourne pisin(x) sinustan(x) tangente

curdate() date courante : YYYY-MM-DDcurtime() heure courante : HH-MM-SS

date_format(date, format) formate la date au format demandé date_format("2001-01-10","%e %M %Y") donnera 10 January 2001

dayname(date) retourne le nom du jour de la semaine pour la date donnée

Page 4 sur 6Cours MySQL : expressions

15/12/2004file://C:\Documents%20and%20Settings\Nicolas%20REVAULT\Mes%20documents\Doc\Enseign\Cergy\TicTic\Archives\03-04\2003-...

Page 24: Bases de données et Internet avec PHP et MySQL · Système de Gestion de Bases de Données Relationnelles) client-serveur : La Base de Données est une collection de données structurées,

Chaînes

Voici une grande partie des fonctions sur les chaînes :

dayofmonth(date) retourne le jour du mois (un chiffre) pour la date donnéedayofweek(date) retourne le jour de la semaine (1 à 7) pour la datedayofyear(date) retourne le jour de l'année pour la datehour(heure) retourne la partie heure pour une valeur sous la forme HH:MM:SSminute(heure) retourne la partie minutes pour une valeur sous la forme HH:MM:SSmonth(date) retourne la partie mois de la datemonthname(date) retourne le nom du mois pour la datenow() retourne YYYY-MM-DD HH:MM:SSsecond(heure) retourne la partie secondes pour une valeur sous la forme HH:MM:SSweek(date) retourne la semaine de l'année pour la date donnéeyear(date) retourne la partie année de la date au format YYYY-MM-DD

ascii(ch) code ascii du 1er car de la chaînechar(c1,c2,...) ascii vers caractère (char(65) donnera A)concat(ch1, ch2, ...) concaténation des chaîneselt(n, ch1, ch2, ...) retourne le nième élément (n) de la liste de chaînes

field(ch, ch1, ch2, ...) retourne l'index de la chaîne chi qui correspond à ch, 0 s'il n'y a pas de correspondance

insert(ch, deb, long, chrempl retourne la chaîne ch avec chrempl qui remplace la sous-chaîne située à l'indice deb et de longueur longlcase(ch) conversion en minusculeslower(ch) conversion en minusculesucase(ch) conversion en majusculesupper(ch) conversion en majusculeslength(ch) taillelocate(sch, ch, pos) retourne la première occurrence de sch dans ch à partir de la position pos (cet argument est optionnel)

Page 5 sur 6Cours MySQL : expressions

15/12/2004file://C:\Documents%20and%20Settings\Nicolas%20REVAULT\Mes%20documents\Doc\Enseign\Cergy\TicTic\Archives\03-04\2003-...

Page 25: Bases de données et Internet avec PHP et MySQL · Système de Gestion de Bases de Données Relationnelles) client-serveur : La Base de Données est une collection de données structurées,

Comparaisons

fonctions agrégées

ltrim(ch) suppression des espaces à gauchertrim(ch) suppression des espaces à droitemid(ch, pos, long) retourne la sous-chaîne de ch qui commence à l'indice pos et de taille longrepeat(ch, n) retourne ch répété n foisreplace(ch, rech, remp) retourne ch avec toutes les occurrences de rech remplacées par rempreverse(ch) inversion des caractères de la chaînesubstring(ch, pos, long) retourne la sous-chaîne de ch débutant à l'indice pos et de taille long

greatest(expr1, expr2) retourne la plus grande expression(numérique ou chaîne)least(expr1, expr2) retourne la plus petite expressionstrcmp(ch1, ch2) retourne 1 si ch1=ch2, 0 sinonif(expr1, expr2, expr3) si expr1 alors retourne expr2 sinon retourne expr3ifnull(expr1, expr2) si expr1 a la valeur NULL retourne expr2interval(x, x1, x2, ...) retourne 0 si x<x1, 1 si x<x2...isnull(exp) retourne 1 si exp a une valeur NULL

avg(expr) retourne la valeur moyennecount(expr) retourne le nombre de valeurs non nulles, si expr est égal à * retourne le nombre de valeurs (nulles et non nulles)max(expr) retourne la valeur maximale de exprmin(expr) retourne la valeur minimale de exprsum(expr) retourne la somme de expr

Page 6 sur 6Cours MySQL : expressions

15/12/2004file://C:\Documents%20and%20Settings\Nicolas%20REVAULT\Mes%20documents\Doc\Enseign\Cergy\TicTic\Archives\03-04\2003-...

Page 26: Bases de données et Internet avec PHP et MySQL · Système de Gestion de Bases de Données Relationnelles) client-serveur : La Base de Données est une collection de données structurées,

Références rapides SQL Sélectionner des informations SELECT liste_col FROM liste_table WHERE critere GROUP_BY colonnes ORDER BY tri_col HAVING critere2 LIMIT nb;

Quelques exemples :

Ajout d'informations dans une table

INSERT INTO nom_table (nomcol1, nomcol2, ...) VALUES ('val1', val2, ...)

Modifications d'informations dans une table

UPDATE nom_table SET col1='val1', col2='val2',... WHERE expression

Suppressions d'informations dans une table

DELETE FROM nom_table WHERE expression

SELECT * from nom_table; sélectionne toutes les rangées et toutes les colonnesSELECT nom_col from nom_table; sélectionne toutes les rangées et une seule colonneSELECT * from nom_table where nom_col='val'; sélectionne les rangées pour lesquelles la colonne nom_col a pour valeur val. SELECT * from nom_table ORDER BY nom_col affiche toutes les rangées en les classant par ordre en fonction de nom_col

Page 1 sur 1Cours MySQL : informations

15/12/2004file://C:\Documents%20and%20Settings\Nicolas%20REVAULT\Mes%20documents\Doc\Enseign\Cergy\TicTic\Archives\03-04\2003-...

Page 27: Bases de données et Internet avec PHP et MySQL · Système de Gestion de Bases de Données Relationnelles) client-serveur : La Base de Données est une collection de données structurées,

Bases de données et Internet avec PHP et MySQL

Magali Contensin © Dunod 2004

Le cours en ligne PHP-MySQL a été actualisé, amélioré, complété et transformé en livre publié dans la collection Sciences Sup aux éditions Dunod.

Vous pouvez consulter la table des matières et les codes sources du livre.

Sommaire :

� Chapitre 1 WEB : notions de base � Chapitre 2 HTML � Chapitre 3 PHP : les bases � Chapitre 4 PHP : communication � Chapitre 5 Bases de données et MySQL � Chapitre 6 Etude de cas : gestion de la carte d'un fast-food sur Internet � Annexe A XHTML � Annexe B Feuilles de style en cascades � Annexe C API PHP-MySQL

Compléments en ligne (format pdf) :

� Annexe D. Bases, bits et octets � Annexe E. Norme ISO-8859-1 et entités HTML � Annexe F. Eléments et entités HTML

Page 1 sur 1Livre bases de donnees et internet avec PHP et MySQL

15/12/2004http://www.cmi.univ-mrs.fr/~contensi/bd_internet/index.html

Page 28: Bases de données et Internet avec PHP et MySQL · Système de Gestion de Bases de Données Relationnelles) client-serveur : La Base de Données est une collection de données structurées,

Table des matières � Avant-propos � Chapitre 1. Web : notions de base

1.1 Introduction 1.2 Architecture client/serveur

1.2.1 Définitions 1.2.2 Clients et serveurs pour le Web 1.2.3 Architecture 2-tiers et 3-tiers

1.3 Présentation du Web et de l'hypertexte 1.3.1 Internet 1.3.2 Hypertexte 1.3.3 WWW

1.4 Standards du Web 1.4.1 URL 1.4.2 Types MIME 1.4.3 Protocole HTTP

1.5 Du statique au dynamique 1.5.1 Pages statiques 1.5.2 Applications côté serveur avec l'interface CGI 1.5.3 Applications côté serveur avec l'interface API

1.6 Conclusion � Chapitre 2. HTML

2.1 Introduction 2.1.1 Evolutions du langage 2.1.2 Eléments, attributs et balises 2.1.3 Définition de types de documents (DTD) 2.1.4 Validation des pages Web

Bases de données et Internet avec PHP et MySQL

Magali Contensin © Dunod 2004

Page 1 sur 7Table des matieres du livre bases de donnees et internet avec PHP et MySQL

15/12/2004http://www.cmi.univ-mrs.fr/~contensi/bd_internet/tdm.html

Page 29: Bases de données et Internet avec PHP et MySQL · Système de Gestion de Bases de Données Relationnelles) client-serveur : La Base de Données est une collection de données structurées,

2.2 Structure d'un document HTML 2.2.1 Déclaration de type de document 2.2.2 En-tête 2.2.3 Corps 2.2.4 Exemple 2.2.5 Accents et caractères spéciaux 2.2.6 Commentaires 2.2.7 Unités de longueur

2.3 Eléments de structuration de textes 2.3.1 Titres 2.3.2 Paragraphes 2.3.3 Blocs 2.3.4 Structuration de phrases et de mots 2.3.5 Sauts de lignes et espaces 2.3.6 Traits de séparation 2.3.7 Listes 2.3.8 Tableaux

2.4 Liens hypertextes 2.4.1 Elément d'insertion 2.4.2 Ancres 2.4.3 Mails

2.5 Insertion d'objets multimédia 2.5.1 Images 2.5.2 Autres objets multimédia

2.6 Cadres 2.6.1 Elément FRAMESET 2.6.2 Elément FRAME 2.6.3 Elément NOFRAMES 2.6.4 Exemple

2.7 Formulaires 2.7.1 Elément FORM 2.7.2 Boîtes de texte 2.7.3 Choix 2.7.4 Boutons 2.7.5 Désactiver des contrôles 2.7.6 Attacher une touche à un contrôle

Page 2 sur 7Table des matieres du livre bases de donnees et internet avec PHP et MySQL

15/12/2004http://www.cmi.univ-mrs.fr/~contensi/bd_internet/tdm.html

Page 30: Bases de données et Internet avec PHP et MySQL · Système de Gestion de Bases de Données Relationnelles) client-serveur : La Base de Données est une collection de données structurées,

2.7.7 Attacher une information à un contrôle 2.7.8 Exemple de formulaire

2.8 Couleurs 2.8.1 Synthèse soustractive et synthèse additive 2.8.2 Identificateurs de couleur HTML 2.8.3 Codes de couleur HTML

2.9 Feuilles de styles en cascades (CSS) 2.9.1 Propriétés de style et leurs valeurs 2.9.2 Style local 2.9.3 Style intégré 2.9.4 Style externe

2.10 Conclusion � Chapitre 3. PHP : les bases

3.1 Introduction 3.1.1 Caractéristiques 3.1.2 Principe 3.1.3 Historique et versions

3.2 Structure d'un script PHP 3.2.1 Instructions 3.2.2 Blocs 3.2.3 Commentaires 3.2.4 Envoi de données vers la sortie standard 3.2.5 Un premier script PHP

3.3 Syntaxe du langage 3.3.1 Variables et types 3.3.2 Constantes 3.3.3 Opérateurs 3.3.4 Instructions 3.3.5 Fonctions

3.4 Chaînes de caractères 3.4.1 Syntaxe 3.4.2 Fonctions prédéfinies

3.5 Tableaux 3.5.1 Tableaux avec accès par indice 3.5.2 Tableaux associatifs 3.5.3 Fonctions prédéfinies

Page 3 sur 7Table des matieres du livre bases de donnees et internet avec PHP et MySQL

15/12/2004http://www.cmi.univ-mrs.fr/~contensi/bd_internet/tdm.html

Page 31: Bases de données et Internet avec PHP et MySQL · Système de Gestion de Bases de Données Relationnelles) client-serveur : La Base de Données est une collection de données structurées,

3.6 Expressions rationnelles 3.6.1 Syntaxe 3.6.2 Fonctions pour les expressions rationnelles 3.6.3 Expressions rationnelles compatibles Perl

3.7 Fonctions prédéfinies 3.7.1 Date et temps 3.7.2 Mathématiques 3.7.3 Formatage des données 3.7.4 Types et conversions

3.8 Conclusion � Chapitre 4. PHP : communication

4.1 Introduction 4.2 Accès aux données envoyées par le client

4.2.1 Principe 4.2.2 Obtenir le contenu d'une variable scalaire 4.2.3 Obtenir le contenu de variables non scalaires 4.2.4 Vérification des données et sécurité

4.3 Manipulation de fichiers et répertoires 4.3.1 Réponse à un client à partir d'informations extraites d'un fichier 4.3.2 Stocker des informations envoyées par le client 4.3.3 Envoyer le contenu d'un fichier à un client 4.3.4 Obtenir des informations sur un fichier envoyé par le client 4.3.5 Fonctions prédéfinies 4.3.6 Afficher la date de dernière modification d'une page Web 4.3.7 Un script pour la construction d'une page Web à partir de plusieurs pages Web

4.4 Persistance des données 4.4.1 Partie arguments de l'URL 4.4.2 Champs cachés de formulaires 4.4.3 Cookies 4.4.4 Sessions

4.5 Conclusion � Chapitre 5. Bases de données et MySQL

5.1 Introduction 5.2 Principe et historique

5.2.1 Organisation sur support papier 5.2.2 Organisation des données en fichiers

Page 4 sur 7Table des matieres du livre bases de donnees et internet avec PHP et MySQL

15/12/2004http://www.cmi.univ-mrs.fr/~contensi/bd_internet/tdm.html

Nicolas Revault
Page 32: Bases de données et Internet avec PHP et MySQL · Système de Gestion de Bases de Données Relationnelles) client-serveur : La Base de Données est une collection de données structurées,

5.2.3 Organisation en bases de données 5.3 Algèbre relationnelle et SQL

5.3.1 Définitions 5.3.2 Opérations de base de l'algèbre relationnelle 5.3.3 Opérations par combinaisons d'opérations de base de l'algèbre relationnelle 5.3.4 Langage SQL

5.4 MySQL 5.4.1 Introduction 5.4.2 Connexion et premières requêtes

5.5 Cas d'étude 5.5.1 Description du modèle 5.5.2 Notions sur le langage de contrôle de données

5.6 Types de données 5.6.1 Nombres 5.6.2 Chaînes de caractères 5.6.3 Dates et temps

5.7 Expressions, variables et opérateurs 5.7.1 Expressions 5.7.2 Variables 5.7.3 Opérateurs 5.7.4 Expressions rationnelles POSIX 5.7.5 Commentaires

5.8 Fonctions prédéfinies 5.8.1 Mathématiques 5.8.2 Temps et dates 5.8.3 Chaînes de caractères 5.8.4 Comparaisons 5.8.5 Structures de contrôles 5.8.6 Fonctions pour les groupes

5.9 Langage de définition des données 5.9.1 Création de tables 5.9.2 Suppressions 5.9.3 Modifications

5.10 Langage de manipulation des données 5.10.1 Insertion 5.10.2 Extractions

Page 5 sur 7Table des matieres du livre bases de donnees et internet avec PHP et MySQL

15/12/2004http://www.cmi.univ-mrs.fr/~contensi/bd_internet/tdm.html

Page 33: Bases de données et Internet avec PHP et MySQL · Système de Gestion de Bases de Données Relationnelles) client-serveur : La Base de Données est une collection de données structurées,

5.10.3 Modification 5.10.4 Suppression

5.11 Transactions et clés étrangères avec InnoDB 5.11.1 Clés étrangères 5.11.2 Transactions

5.12 Conclusion � Chapitre 6. Etude de cas : gestion de la carte d'un fast-food sur Internet

6.1 Présentation de l'étude de cas 6.1.1 Front Office 6.1.2 Back-office

6.2 Création et insertions sous MySQL 6.2.1 Création de la table produits 6.2.2 Insertion de données dans la table produits

6.3 Consultation des données (Front Office) 6.3.1 Bibliothèques de fonctions 6.3.2 Alterner les couleurs 6.3.3 Interrompre l'exécution en cas d'erreur 6.3.4 Se connecter à MySQL depuis un script PHP 6.3.5 Envoyer une requête SQL à MySQL 6.3.6 Vérifier que des lignes ont été extraites 6.3.7 Vérifier les données avant de les utiliser 6.3.8 Consulter les valeurs des arguments de l'URL 6.3.9 Générer la page Web

6.4 Back-Office (Intranet) 6.4.1 Découper la page Web en cadres 6.4.2 Créer la fiche pour ajouter un plat dans la base 6.4.3 Créer la liste des plats 6.4.4 Afficher la fiche d'un plat 6.4.5 Insérer, modifier ou supprimer des données

6.5 Back-Office avec une feuille de styles 6.5.1 Diviser la page en blocs 6.5.2 Afficher la liste des plats (bloc menu) 6.5.3 Afficher une fiche vide (bloc résultat) 6.5.4 Afficher la fiche d'un plat (bloc résultat) 6.5.5 Insérer, supprimer ou modifier (bloc menu)

6.6 Générer automatiquement un formulaire

Page 6 sur 7Table des matieres du livre bases de donnees et internet avec PHP et MySQL

15/12/2004http://www.cmi.univ-mrs.fr/~contensi/bd_internet/tdm.html

Page 34: Bases de données et Internet avec PHP et MySQL · Système de Gestion de Bases de Données Relationnelles) client-serveur : La Base de Données est une collection de données structurées,

6.7 Conclusion � Annexe A. XHTML

A.1 De HTML 4.01 à XHTML A.2 Différences avec HTML 4.01

� Annexe B. Feuilles de style en cascades B.1 Propriétés pour les polices B.2 Propriétés pour les textes B.3 Propriétés pour les couleurs et fonds B.4 Propriétés pour les blocs B.5 Propriétés de format visuel B.6 Propriétés pour les listes B.7 Propriétés pour les tableaux (CSS2) B.8 Propriétés pour les curseurs (CSS2)

� Annexe C. API PHP-MySQL C.1 Ouverture, fermeture, sélection, mémoire C.2 Gestion des erreurs C.3 mysql_fetch_ C.4 Informations sur les colonnes : mysql_field_ C.5 Liste des bases, tables et champs : mysql_list_ C.6 Nombre de champs ou lignes C.7 Requêtes

� Annexe D. Bases, bits et octets (sur le web) � Annexe E. Norme ISO-8859-1 et entités HTML (sur le web) � Annexe F. Eléments et entités HTML (sur le web) � Références � Index

Page 7 sur 7Table des matieres du livre bases de donnees et internet avec PHP et MySQL

15/12/2004http://www.cmi.univ-mrs.fr/~contensi/bd_internet/tdm.html