Support- DM-CS3

publicité
A.F.C.I NEWSOFT 12 – 16 Rue de Vincennes – 93100 Montreuil – TEL : 01.42.87.40.20 – FAX : 01. 42.87.38.28
SAS au capital de 154 000 € - SIRET 349 343 384 00039 – APE 8559A – AGREE FORMATION : 11930129393
Site : www.afci.fr - Email ; [email protected] - TVA Intracommunautaire : FR66349343384
ADO BE Dreamweaver CS 3
Pages web dynamiques : PHP /MyS Q L
Création de pages web dynamiques PHP / MySQL
avec Dreamweaver CS3
1
INTRODUCTION......................................................................................................................................................... 4
2
QU'EST-CE QUE LE PHP ? ..................................................................................................................................... 5
2.1
2.2
2.3
LA PETITE HISTOIRE ................................................................................................................................................5
LE VRAI PHP............................................................................................................................................................5
LE SUPER PHP ! .......................................................................................................................................................5
3
COMMENT ÇA MARCHE ? .................................................................................................................................... 6
4
PHP ET MYSQL........................................................................................................................................................... 7
4.1
4.2
5
PHP ...........................................................................................................................................................................7
M YSQL ....................................................................................................................................................................7
INSTALLER ET CONFIGURER ............................................................................................................................ 8
5.1
5.2
5.3
6
EASYPHP ...................................................................................................................................................................8
CREATION DES DOSSIERS POUR LE SITE...............................................................................................................9
CREATION D'UN ALIAS............................................................................................................................................9
JEUX DE CARACTERES & INTERCLASSEMENTS ...................................................................................11
6.1
6.2
6.3
6.4
6.5
6.6
7
LES JEUX DE CARACTERE S ...................................................................................................................................11
LES INTERCLASSEMENTS......................................................................................................................................12
PRESENTATION DES FONCTIONNALITES DE M YSQL........................................................................................13
JEUX DE CARACTERES ET INTERCLASSEMENTS UTILISES POUR LE STOCKAGE .............................................14
CORRIGER UNE INCOHERENCE DE JEUX DE CARACTERES................................................................................15
JEUX DE CARACTERES ET INTERCLASSEMENTS DE CONNEXION.....................................................................15
ADMINISTRER UNE BASE DE DONNEES MYSQL....................................................................................17
7.1
7.2
7.3
7.4
CREATION DE LA BASE AVEC PHPM YA DMIN...................................................................................................17
A JOUTER UN NOUVEL UTILISATEUR POUR LA BASE .........................................................................................18
CREER UNE TABLE.................................................................................................................................................19
A FFICHER LES ENREGIST REMENTS......................................................................................................................21
8
EXPORTER - IMPORTER DES TABLES SQL...............................................................................................22
9
DEPLACER – COPIER OU RENOMMER UNE TABLE.............................................................................23
10
DEFINIR LE SITE DANS DREAMWEAVER CS3....................................................................................24
11
ÉTABLIR UNE CONNEXION A LA BASE DE DONNEES ....................................................................26
12
CREER UNE FICHE DYNAMIQUE (REQUETE SELECT) ..................................................................27
12.1
12.2
12.3
12.4
13
CONCEPTION DE LA PAGE .....................................................................................................................................27
CREATION DU JEU D 'ENREGISTREMENTS............................................................................................................27
CREER UNE BARRE DE NAVIGATION ...................................................................................................................28
CREER UN ETAT DE NAVIGATION ........................................................................................................................29
AJOUTER UN ENREGISTREMENT (REQUETE INSERT INTO) .....................................................30
13.1
13.2
14
CREER LE FORMULAIRE ........................................................................................................................................30
CREER LA PAGE DE CONFIRMATION....................................................................................................................32
SUPPRIMER UN ENREGIS TREMENT (REQUETE DELETE) ...........................................................32
14.1
14.2
14.3
page 2/3
CREER LE FORMULAIRE POUR CHOISIR...............................................................................................................32
CREER LA PAGE DE VERIFICATION......................................................................................................................34
SUPPRIMER L’ENREGISTREMENT SELECTIONNE................................................................................................36
ADO BE Dreamweaver CS 3
15
Pages web dynamiques : PHP /MyS Q L
MODIFIER UN ENREGISTREMENT (REQUETE UPDATE) ..............................................................37
15.1
15.2
CREER LE FORMULAIRE POUR CHOISIR...............................................................................................................37
CREER LA PAGE DE VERIFICATION/MODIFICATION...........................................................................................37
16
AJOUTER UN CHAMP DANS UNE TABLE...............................................................................................40
17
RECHERCHER DES ENREGISTREMENTS (CLAUSE WHERE) .....................................................41
17.1
17.2
CREER LE FORMULAIRE DE RECHERCHE ............................................................................................................41
CREER LA PAGE DE RESULTATS...........................................................................................................................44
18
LES IMAGES DYNAMIQUES ..........................................................................................................................47
19
CREER UN LIEN DYNAMIQUE.....................................................................................................................50
20
RECHERCHE MULTICRITERES ..................................................................................................................52
21
REQUETE DE JOINTURE (INNER JOIN) ..................................................................................................55
22
PARAMETRE D'URL..........................................................................................................................................57
23
ACCES RESTREINT ...........................................................................................................................................62
23.1
23.2
CREATION DE LA TABLE DES IDENTIFIANTS......................................................................................................62
CREATION DES PAGES...........................................................................................................................................62
ANNEXES ...............................................................................................................................................................................66
23.3
23.1
23.2
LES OPERATEURS : LA " GRAMMAIRE" DE PHP .................................................................................................66
LES TYPES DE DONNEES DES CHAMPS DANS M YSQL......................................................................................70
INITIATION AU LANGAGE SQL (S TRUCTURE QUERY LANGUAGE )...................................................................73
page 3/4
ADO BE Dreamweaver CS 3
Pages web dynamiques : PHP /MyS Q L
1 Introduction
Adobe Dreamweaver CS3 constitue un environnement professionnel destiné à
la création d'applications web. Une application web est un ensemble de pages
interagissant les unes avec les autres, ainsi qu'avec les différentes ressources
d'un serveur web, notamment les bases de données (sites dynamiques).
Dreamweaver CS3 offre le choix de piloter des bases de données de provenances
diverses. Dreamweaver CS3 propose plusieurs langages pour interagir sur ces
bases de données et sur les comportements de serveur.
La solution retenue pour ce cours, outre l'utilisation de Dreamweaver CS3 sous
Windows, est la combinaison PHP et MySQL.
Une connaissance d'un système de gestion de base de données (par exemple
avec MS Access) et de la conception de sites Web "statiques" (par exemple sous
Dreamweaver) est indispensable pour assimiler toutes les leçons. Des notions du
langage SQL seraient bienvenues !
page 4/5
ADO BE Dreamweaver CS 3
Pages web dynamiques : PHP /MyS Q L
2 Qu'est-ce que le PHP ?
PHP est un langage de programmation, qui permet de générer des pages web
dynamiques. C'est un langage assez étonnant, car il est accessible très
facilement aux néophytes, tout en permettant aux experts de descendre assez
bas au niveau du système, ou d'accéder à des librairies très intéressantes. De
plus, il permet une programmation procédurale, ou orientée objets. Mais voyons
cela plus en détails...
2.1 La petite histoire
PHP a été inventé et distribué par Rasmus Lerdorf. Il est né au Groenland le 22
novembre 1968. Au départ, en 1995, le projet s'appelait PHP/FI (pour Personal
Home Page Tools/Form Interpreter), et était utilisé comme une bibliothèque de scripts
perl, qui permettait à Rasmus de gérer son CV. Baptisé alors : 'Personnal Home
Page', cette bibliothèque s'étoffa peu à peu via des librairies en C, permettant
notamment l'accès à des bases de données. Le "bonhomme" travaillant avec
Unix depuis 1985 et avec Perl, on voit donc bien d'où vient la philosophie du PHP
!
Le projet continua de grandir, et en 1997, déjà 1% des sites de la toile étaient
passés au PHP ! Mais le langage, écrit totalement en C, restait peu cohérent et
brouillon.
2.2 Le vrai PHP
En 1997, deux étudiants, Andi Gutmans et Zeev Suraski décident de réécrire
PHP/FI, et sortent la version 3 de PHP. Cette version est plus stable, mais permet
également le système d'extensions, ce qui attire des dizaines de développeurs
dans le projet. On voit également apparaître la syntaxe orientée objets, et un
nouveau nom :
Hypertext Preprocessor.
En 1998, PHP occupait 10% du Web.
PHP 4 voit le jour en mai 2000 et atteint alors 20% du Web mondial. Le moteur
de PHP, appelé Zend Engine1 est maintenant plus performant, réécrit une
nouvelle fois en C.
2.3 Le super PHP !
Après 4 ans de développement, la version 5 de PHP sort le 13 juillet 2004. Doté
du Zend Engine 2.0, il permet des fonctionnalités encore plus intéressantes, avec
par exemple une syntaxe orientée objets encore plus grande.
1
Zend Engine : est un moteur de script Open Source, surtout connu pour le rôle qu'il joue dans le langage de
script PHP. Il a été originellement développé par Andi Gutmans et Zeev Suraski. Le nom Zend est un mot-valise
de leurs prénoms Zeev et Andi.
page 5/6
ADO BE Dreamweaver CS 3
Pages web dynamiques : PHP /MyS Q L
En 2004, PHP est utilisé par plus de 15 millions de personnes, soit deux fois plus
qu'en 2002 !
3 Comment ça marche ?
Le PHP est un langage 100% côté serveur. Autrement dit, un client (votre
navigateur par exemple) ne gère pas et ne voit pas le PHP.
Mais où est-il alors
?
En réalité, le code PHP est interprété (et non pas compilé, même si c'est
possible. D'ailleurs, Rasmus insiste bien sur le fait qu'un code compilé est plus
rapide ) sur le serveur, afin de générer du code HTML. Ce code HTML est alors
envoyé sur le serveur via des requêtes HTTP au client, qui gère le code reçu et
l'affiche :
1
Le navigateur envoie l'adresse vers le serveur.
4
3
PHP continue d'analyser la page, puis
retourne le fichier dépourvu du code
PHP au serveur web.
Le serveur web renvoie donc un
fichier ne contenant plus de PHP,
donc seulement du HTML au
navigateur qui l'interprète et l'affiche.
2
Le serveur web
vérifie l'existence
du fichier, et si
celui-ci porte une
extension reconnue
il transmet ce
fichier à PHP.
Le code PHP est analys é et exécuté (script entre les balises <?php et ?>).
Si ce code contient une requête qui appelle une base de données MySQL,
PHP envoie cette requête SQL. La base de données renvoie les
informations au script qui peut les exploiter (pour les afficher par exemple).
Vous remarquerez que PHP s'exécute uniquement côté serveur. Il n'y a plus
aucune trace du code PHP lorsque vous regardez le code source de la page dans
votre navigateur.
page 6/7
ADO BE Dreamweaver CS 3
Pages web dynamiques : PHP /MyS Q L
4 PHP et MySQL
4.1 PHP
PHP (officiellement, ce sigle est un acronyme récursif pour "PHP: Hypertext Preprocessor") est
un langage de scripts généraliste, Open Source, spécialement conçu pour le
développement d'applications web.
PHP est un langage de programmation qui s'intègre dans vos pages HTML. Il
permet entre autres de rendre automatiques des tâches répétitives, notamment
grâce à la communication avec une base de données (utilisation la plus courante
de PHP).
Techniquement, PHP tient la comparaison avec ses concurrents : ASP,
ColdFusion, Perl ou Java Server Pages. Il n'y a plus de doutes sur le fait que PHP
est devenu un standard du développement web. Très rapidement, on s'est
aperçu aussi que PHP pourrait servir à autre chose que le web. C'est maintenant
une réalité avec la sortie d'une version PHP-GTK, qui permet d'écrire des
applications autonomes sous Unix ou Windows.
4.2 MySQL
MySQL est un système de gestion de Bases de Données (SGBD) fonctionnant
sous Linux et Windows. Il est très souvent utilisé avec PHP afin de créer un site
entièrement dynamique et une mise à jour simplifiée.
On retiendra que MySQL est devenu très populaire ces derniers temps.
Relativement simple à prendre en main, il est déployé chez la plupart des
hébergeurs (free ou pro) et répond parfaitement à des problématiques simples. A
ce titre, il est parfaitement adapté pour gérer le stockage et la mise en ligne de
contenu (informations, etc.).
PHP est maintenant clairement un outil de premier plan, et on ne compte plus les
articles et les analyses qui présentent le trio : Apache - PHP - MySQL comme la
nouvelle formule gagnante du web. Après un succès immédiat dans la
communauté Linux et Open Source, PHP s'est imposé dans le monde du business
et de l'internet professionnel.
page 7/8
ADO BE Dreamweaver CS 3
Pages web dynamiques : PHP /MyS Q L
5 Installer et Configurer
Les hébergeurs de sites dynamiques PHP / MySql sont nombreux. Les prestations
et les coûts sont variés. Chacun peut trouver l'hébergeur qui lui convient, du
"free" au "pro".
Pour tester le site développé en local à l'aide de Adobe Dreamweaver CS3, on a
besoin d'installer en local : serveur web, PHP et MySQL.
Easyphp installe et configure automatiquement un environnement de travail
complet permettant de mettre en œuvre toute la puissance et la souplesse
qu'offrent le langage dynamique PHP et son support efficace des bases de
données.
EasyPHP est un package WAMP2, une plateforme de développement Web,
permettant de faire fonctionner localement (sans se connecter à un serveur
externe) des scripts PHP.
EasyPHP n'est pas en soi un logiciel, mais un environnement comprenant deux
serveurs (un serveur web Apache et un serveur de bases de données MySQL), un
interpréteur de script (PHP), ainsi qu'une administration SQL PhpMyAdmin. Il
dispose d'une interface d'administration permettant de gérer les alias (dossiers
virtuels disponibles sous Apache), et le démarrage/arrêt des serveurs. Il permet
donc d'installer en une seule fois tout le nécessaire au développement local du
PHP. Par défaut, le serveur Apache crée un nom de domaine virtuel (en local)
http://127.0.0.1 ou http://localhost. Ainsi, quand on choisit "Web local"
dans le menu d'EasyPHP, le navigateur s'ouvre sur cette URL et affiche la page
index.php de ce site qui correspond en fait au contenu du dossier www
d'EasyPHP.
5.1 Easyphp
Installation de Easyphp :
•
Télécharger gratuitement (licence GPL libre de droit) Easyphp sur le site
www.easyphp.org
Dans ce support nous travaillerons avec la version 2.0
•
Double cliquer sur l'exécutable téléchargé
•
Sélectionner le répertoire d'installation et suivre la procédure…
2
WAMP est un acronyme info rmatique signifiant :
- « Windows »
- « A pache »
- « My S Q L »
- « PH P »
Les rôles de ces quatre composants sont les suivants :
-
Apache est le serveur web « frontal » : il est « devant » tous les autres et répond directement aux requêtes du client
web (navigateur) ;
Le langage de script PHP sert la logique ;
MySQL stocke toutes les données de l'application ;
Windows assure l'attribution des ressources à ces trois composants.
page 8/9
ADO BE Dreamweaver CS 3
Pages web dynamiques : PHP /MyS Q L
Lancement de Easyphp :
Lancez Easyphp par le raccourci sur le bureau ou dans le menu "démarrer". Il
s'agit alors de la mise en route du serveur Apache et de MySQL.
Remarque : Si un message d'erreur apparaît concernant le lancement de Apache ( port requis déjà
utilisé), il faut alors vérifier que votre antivirus/Firewall ne bloque pas le port (80) !
Une fois Easyphp lancé, une icône apparaît dans la barre de notification (en bas à
droite à coté de l'heure ). Cliquez droit sur cette icône pour ouvrir le "menu
contextuel" d'Easyphp et accéder aux fonctionnalités suivantes :
•
Fichier Log : renvoie aux erreurs générées par Apache et MySQL
•
Configuration : donne accès aux différentes configurations d'Easyphp
•
Web local : ouvre la page http://localhost/
•
Administration : permet de gérer vos bases de données et de créer vos alias,
•
Démarrer/Arrêter : démarre/arrête Apache et MySQL
•
Quitter : ferme Easyphp
5.2 Création des dossiers pour le site
L’ensemble des fichiers du site doivent être regroupés dans un seul et même
dossier (appelé dossier racine), à l'intérieur duquel, on pourra créer des sousdossiers afin d'organiser au mieux ses fichiers (images, pages…) !
Exemple : E:\supportphp
Important :
L'ensemble des fichiers et des dossiers devront être nommées
sans espace et sans accent !!
5.3 Création d'un alias
L'alias (dossier virtuel) permet de représenter l'emplacement du dossier racine
du site. Ainsi, vous pourrez créer votre dossier où vous le souhaitez.
De ce fait, l'alias sera utilisé pour tester vos pages web dynamiques depuis
Dreamweaver (touche F12) vers l'adresse du domaine virtuel : http://localhost
(serveur d’évaluation).
Quand Easyphp est démarré, faire un clic droit sur l'icône à droite de la barre des
tâches) et sélectionner "Administration".
page 9/10
ADO BE Dreamweaver CS 3
Pages web dynamiques : PHP /MyS Q L
Dans la page d'accueil d'Easyphp, cliquer sur : [ajouter] :
-
Nommer l'alias (sans accent et sans espace !))
-
Copier/Coller l'adresse du dossier du site, (afin d'éviter les erreurs de
frappe !)
-
Redémarrer Apache (clic droit sur logo) afin de valider l'enregistrement de l'Alias.
Remarques importantes :
Un alias ne peut pas être modifié. Si vous renommez ou déplacez le dossier racine du site, il vous
faudra supprimer et créer un nouvel alias !
Chaque projet web nécessitera la création d'un dossier racine et d'un alias.
L'ensemble des alias est affiché sur la page d'accueil d'EasyPHP.
page 10/11
ADO BE Dreamweaver CS 3
Pages web dynamiques : PHP /MyS Q L
6 Jeux de caractères & interclassements
6.1 Les jeux de caractères
Afin de mieux comprendre la notion de jeu de caractères, lisez ce qui suit. Si vous savez déjà de
quoi il s'agit, vous pouvez passer directement à la section suivante !
Un peu d'histoire…
L'ordinateur ne connaît pas la notion de caract ères à proprement parler ; il ne connaît que les
nombres. Du coup, on a inventé une table de conversion qui fait correspondre un nombre à un
caractère : il s'agit de l'ASCII. Ce dernier définit 128 caractè res, sur 7 bits.
Cela fonctionnait très bien lorsque l'informatique n'était encore qu'à ses débuts. Mais ensuite, on
s'est rendu compte qu'on avait oublié dans ce code d'inclure les caractères accentués de nos
chères langues nationales. Ainsi, il était imp ossible d'écrire un "é", un "è", un "à" ou un "ù", et
encore moins des glyphes arabes, chinois ou japonais.
Pour remédier à cela, on a utilisé le huitième bit, qui était jusqu'alors inutilisé (enfin, pas vraiment. I l
était utilisé à des fins de contrôle de l'intégrité des données, mais cela n'est plus très utile car cette fonction est maintenant
prise en charge par les protocoles de communication ),
pour créer des "extensions" au code ASCII. Ces
extensions particulières sont des encodages, ou encore des jeux de caractères (charsets)
particuliers. En utilisant le huitième bit, on pouvait créer 128 caractères supplémentaires, ce qui
était plus que suffisant pour y placer pas mal de caractères accentués.
Ainsi, toute une flopée de jeux de caractères ont été créés, chacun couvrant une plage de langues
ou d'alphabets précis : ISO -8859-1 à ISO-8859-15 notamment. Celui correspondant à notre
alphabet occidental est l'ISO-8859-1, mais il est de plus en plus remplacé par l'ISO -8859-15
car ce dernier, plus récent, ajoute le support du signe euro "¬".
Ces nombreux encodages ont rapidement créé des problèmes d'incompatibilité. En effet, en
l'absence d'informations, comment savoir si le caractère portant la valeur 233 est un "é", comme
en ISO-8859-1, ou la lettre hébraïque " yod", comme en ISO-8859-8 (alphabet hébreu) ?
Pour éviter ce genre de dilemme, chaque document transmis ou enregistré porte en général à
"proximité", par exemple, dans un en-tête HTTP, voire dans le document lui-même un champ
indiquant le jeu de caractères dans lequel il a été encodé. Le cas échéant, le logiciel de lecture se
replie en général vers un encodage par défaut (souvent, le plus répandu).
Mais que se passe-t-il si le logiciel se trompe et choisit le mauvais encodage, parce que l'encodage
par défaut n'est pas le bon, ou parce que l'information d'encodage livrée avec le document est
erronée ?
Eh bien, vous vous en doutez, on a droit à quelques problèmes ! Le plus souvent, le logiciel
arrivera tout de même à afficher le document, mais tous les caract ères accentués seront tout
simplement massacrés (les caractères "normaux" sont épargnés car il s'agit de la base ASCII,
commune à tous les encodages).
Le plus souvent, on est confronté à deux cas : soit le document est lu en ISO -8859-1 alors qu'il est
encodé en UTF-8 (encodage que nous verrons un peu plus loin), auquel cas vous verrez des
caractères de ce style à la place des accents : "é" (très joli, n'est-il pas ?), soit le document est
lu en UTF-8 alors qu'il est encodé en ISO -8859-1 (plus rare), auquel cas tous les accents seront
tout simplement remplacés par des "?".
D'où l'intérêt de faire attention à bien vérifier que l'encodage spécifié est bien celui avec lequel on
encode le document !
page 11/12
ADO BE Dreamweaver CS 3
Pages web dynamiques : PHP /MyS Q L
D'accord pour les problèmes d'encodage, mais il y en a un autre : comment faire pour écrire des
glyphes latins, hébreu, chinois et russes dans la même page ? Par exemple, pour un cours
d'histoire des langues ? Quel encodage ISO -8859-truc dois-je utiliser ?
Aucun. En fait, il n'est pas possible de stocker toutes ces p ossibilités dans les 128 combinaisons
possibles. On n'a donc pas le choix : il faut agrandir l'espace, c'est-à-dire s'étendre sur plus d'un
octet par caractère.
Oui, mais si on double chaque caractère (par exemple), la taille du document va doubler ! Il n'y a
pas une meilleure solution ?
Si. En fait, on va utiliser le fameux huitième bit comme "indicateur d'encodage" : par exemple, on
peut dire que s'il est à 0, il s'agit d'un caractère ASCII, et s'il est à 1, on est en présence d'un
glyphe non standard et qu'ici, et ici uniquement, on va le coder avec deux octets. Cela nous donne
donc les 7 bits du premier octet plus les 8 bits du second octet, soit 15 bits, soit encore 32768
possibilités. D'un coup, on se sent plus à l'aise !
Ce type d'encodage existe : il s'agit du "célèbre" UTF-8.
Alors pourquoi tout le monde ne se met pas à utiliser de l'UTF-8, puisqu'il est bien meilleur que les
encodages de la série ISO ?
Pour plusieurs raisons :
•
•
UTF-8 est un jeu de caractères récent par rapport aux autres. Il est longtemps resté
méconnu et peu utilisé. Du coup, l'habitude d'utiliser ISO -8859-1 reste encore solidement
répandue.
UTF-8 n'est d'aucune utilité si vous êtes absolument certains que vous allez rester dans un
alphabet bien précis (l'alphabet latin, par exemple). Auquel cas, il peut s'avérer plus
judicieux d'utiliser un encodage de la série ISO car un caractère accentué y prend moins de
place qu'en UTF-8.
Attention : Il faut vraiment être certain de chez certain ! P ar exemple, irez-vous jurer sur votre
tête que vous n'insérerez jamais de caractère hébreu ou russe sur votre blog ? Sur un billet
ayant pour sujet l'encodage des caractères par exemple, ou sur une langue précise ?
•
Surtout, le principal obstacle à la généralisation d'UTF-8 est que, contrairement aux
encodages classiques, il faut que les logiciels soient adaptés. Pourquoi ? Parce que dans un
encodage classique, le nombre d'octets est le même que le nombre de caractères (vu qu'un
octet égale un caractère). Avec UTF-8, cette égalité ne tient plus. Du coup, le
comportement des programmes non conçus pour gérer l'UTF-8 peut se révéler étrange
avec ces types de documents. Il faut également signaler que pour cette même raison, une
chaîne en UTF-8 est plus longue à traiter qu'une chaîne en encodage classique.
Tout ça est bien joli, mais je ne sais même pas quel jeu de caractères j'utilise pour mon
application/page web/documents !
Si vous ne savez pas quel encodage vous utilisez, il y a gros à parier qu'il s'agit de ISO -8859-1
(aussi appelé latin1).
6.2 Les interclassements
Maintenant que vous avez appris en quoi consistent les jeux de caractères, voyons maintenant ce
que sont les interclassements, et à quoi ils servent.
Un interclassement (aussi appelé collation) est une table de correspondance spécifique à u n jeu de
caractères. Un jeu de caractères peut avoir plusieurs interclassements : en général, un par langue
(par exemple, latin1 français, latin1 suédois).
Il a deux fonctions :
page 12/13
ADO BE Dreamweaver CS 3
•
Pages web dynamiques : PHP /MyS Q L
il permet l'ordonnancement correct d'une liste de caractères. Par exemple, si l'on classe
une liste par ordre alphabétique, qu'est-ce qui indique au logiciel que le "é" vient après le
"e", ou que les majuscules viennent avant les minuscules (par exemple) ? Eh bien c'est
l'interclassement. Ces ordres sont en général spécifiques à une langue. MySQL s'en sert
pour les clauses ORDER BY des requêtes.
En l'absence d'interclassement, les codes des caractères sont utilisés ; or, ceux-ci ne
reflètent pas le véritable ordre des glyphes.
•
Il permet de savoir quand un caractère est "équivalent" à un autre. Par exemple, avec un
interclassement adapté, le logiciel peut "prendre conscience" du fait que le caractère "e"
est équivalent à "E", mais aussi à "é", "è" ou "ê". Cela peut se révéler extrêmement
pratique pour la recherche : ainsi, une recherche sur "élément" retournera les résultats
contenant "élément" mais aussi "Element", "element", voire "élEmeNt". D'où des
recherches plus efficaces.
En l'absence d'interclassement, aucun caractère n'est équivalent à un autre.
Avec le jeu de caractères UTF-8, en plus des principales langues, un interclassement "générique"
permet de gérer le cas des langues mélangées.
Les interclassements vous seront très utiles pour obtenir des classements ORDER BY plus exacts
avec les chaînes de caractères, ou pour rendre vos recherches plus efficaces (notamment les
recherches de type FULLTEXT).
6.3 Présentation des fonctionnalités de MySQL
Depuis la version 2.0 d'Easyphp, MySQL (version 5.0.022) gère une foule de jeux de caractères,
parmi lesquels on retrouve les "classiques" ISO-8859-* et UTF-8, mais aussi des codages chinois,
russes, japonais, coréens...
Pour afficher la liste de tous les jeux de caractères supportés par votre serveur MySQL, exécutez la
requête suivante :
Code : SQL
SHOW CHARACTER SET
Et pour les interclassements :
Code : SQL
SHOW COLLATION
Les interclassements se terminant par _ci sont insensibles à la casse ("E" = "e"), ceux se
terminant par _cs sont sensibles à la casse, et enfin, ceux se terminant par _bin signifient
classement binaire (autreme nt dit, pas d'interclassement).
MySQL fait preuve d'une grande souplesse dans la définition de ces paramètres. Il est ainsi
possible de spécifier dans quel jeu de caractères et interclassement les données sont stockées
séparément pour chaque colonne. Il e st également possible pour un client de préciser le jeu de
caractères utilisé lors de la transmission des données, de sorte que le serveur fasse
automatiquement la traduction, si nécessaire.
La manipulation de ces fonctions est quelque peu compliquée à expliquer (et donc à comprendre).
Néanmoins, une fois que vous aurez compris, vous réaliserez que MySQL peut vous simplifier la vie
dans bien des cas.
page 13/14
ADO BE Dreamweaver CS 3
Pages web dynamiques : PHP /MyS Q L
6.4 Jeux de caractères et interclassements utilisés pour le stockage
Il est possible de spécifier un jeu de caractères et / ou un interclassement pour une base de
données, pour une table, et pour une colonne d'une table. Les paramètres des bases de données et
des tables ne sont en fait que des valeurs par défaut pour les nouvelles colonnes : seul le jeu de
caractère / interclassement de la colonne est en fait exploité lors d'une opération.
En plus clair, cela signifie que si vous ne spécifiez pas de jeu de caractères (par exemple) lorsque
vous créez ou "altérez" une colonne, ce sera le jeu de caractères de la ta ble qui sera utilisé et écrit
comme étant le jeu de caractères de la colonne. Même principe pour le jeu de caractères des tables
et celui des des bases de données.
Voici les différentes requêtes à utiliser pour spécifier les jeux de caractères et les inte rclassements
utilisés pour le stockage des données :
Pour une base de données :
Code : SQL
CREATE DATABASE base_de_donnees [...] CHARACTER SET jeu_de_caracteres COLLATE
interclassement
Code : SQL
ALTER DATABASE base_de_donnees CHARACTER SET jeu_de_caracteres COLLATE
interclassement
Pour une table :
Code : SQL
CREATE TABLE table [...] CHARACTER SET jeu_de_caracteres COLLATE interclassement
Code : SQL
ALTER TABLE table CHARACTER SET jeu_de_caracteres COLLATE interclassement
Pour une colonne (champ) :
Code : SQL
1
2
3
4
5
CREATE TABLE table (
colonne [...] CHARACTER SET jeu_de_caracteres COLLATE interclassement
[...]
)
[...]
Code : SQL
ALTER TABLE table CHANGE colonne colonne type CHARACTER SET jeu_de_caracteres
COLLATE interclassement
!! Attention : le fait de modifier le jeu de caractères d'une colonne avec ALTER entraîne
automatiquement la conversion des données déjà présentes dans la colonne !
page 14/15
ADO BE Dreamweaver CS 3
Pages web dynamiques : PHP /MyS Q L
Notez que la requête suivante permet de convertir toutes les colonnes de la table à un jeu de
caractères précis :
Code : SQL
1
ALTER TABLE table CONVERT TO CHARACTER SET jeu_de_caracteres COLLATE
interclassement
6.5 Corriger une incohérence de jeux de caractères
J'ai une colonne déclarée en latin1, mais j'ai stocké à l'intérieur des données en UTF-8 ! Comment
rétablir la cohérence de mes données ?
Ce problème se produit très souvent, notamment lorsque vous mettez à jour une base de données
MySQL 4.0 en une version plus récente, prenant en compte les jeux de caractères, et que vous
stockiez vos données en UTF-8 sans vous préoccuper de la déclaration de la colonne.
La documentation MySQL indique une astuce pour rétablir la situation : convertir la colonne en type
binaire (BLOB, par exemple), puis la reconvertir en type texte en spécifiant le jeu de caractères
voulu :
Code : SQL
1 ALTER TABLE table CHANGE colonne colonne type_binaire;
2 ALTER TABLE table CHANGE colonne colonne type_texte CHARACTER SET
jeu_de_caracteres;
Par exemple :
Code : SQL
1
2
ALTER TABLE t1 CHANGE c1 c1 BLOB;
ALTER TABLE t1 CHANGE c1 c1 TEXT CHARACTER SET
utf8;
6.6 Jeux de caractères et interclassements de connexion
Considérez le problème suivant : vous avez une colonne dont les données sont stockées en UTF-8,
et votre client (par exemple, un script PHP) utilise ISO-8859-1. Comment manipuler les données
de la colonne ? Il faudrait d'abord convertir les données envoyées en UTF-8, puis les données
reçues en ISO -8858-1... Pas très pratique, surtout lorsqu'on a plusieurs clients utilisant des
encodages différents.
C'est là que MySQL va nous aider : il peut se charger lui-même de la traduction. Dans notre
exemple, il suffirait de dire à MySQL que le client est en ISO -8859-1, pour qu'il effectue tout seul
les conversions d'encodage là où c'est nécessaire ! Ainsi, il convertirait les données envoyées par le
client en UTF-8, et vice-versa, pour les données que le serveur envoie .
Pour cela, il faut manipuler quatre variables MySQL :
•
•
character_set_client indique au serveur l'encodage que le client utilise, c'est-à-dire dans
quel jeu de cara ctères sont transmises les données du client vers le serveur.
character_set_connection indique dans quel jeu de caractères le serveur va convertir les
données avant de les traiter. Sauf rares exceptions, on indiquera la même valeur que pour
character_set_client, afin d'éviter les conversions intermédiaires qui ne servent pas à
grand-chose dans la plupart des cas.
page 15/16
ADO BE Dreamweaver CS 3
•
•
Pages web dynamiques : PHP /MyS Q L
collation_connection indique quel interclassement sera utilisé dans la comparaison de
chaînes littérales, c'est-à-dire par exemple "machin" = "chose". Cette variable n'a aucun
effet sur les comparaisons impliquant des colonnes, car celles-ci ont leur propre
interclassement.
character_set_results indique au serveur dans quel jeu de caractères celui-ci doit
transmettre les résultats. Généralement, on indiquera le même encodage que pour
character_set_client.
Une variable peut se définir de la manière suivante :
Code : SQL
1 SET variable = valeur
Évidemment, les 4 variables décrites plus haut doivent être redéfinies à chaque connexion.
On retie ndra, la formule simplifiée ! :
Code : SQL
1 SET NAMES jeu_de_caracteres
Qui a le même effet que :
Code : SQL
1 SET character_set_client = jeu_de_caracteres;
2 SET character_set_results = jeu_de_caracteres;
3 SET character_set_connection = jeu_de_caracteres;
page 16/17
ADO BE Dreamweaver CS 3
Pages web dynamiques : PHP /MyS Q L
7 Administrer une base de données MySQL
7.1 Création de la base avec PHPMyAdmin
Cliquez droit sur le logo d'Easyphp (à côté de l'h eure dans la barre des taches ) et
choisissez "Administration", puis Cliquer sur MYSQL ADMINISTRATION pour
accéder à l'outil de gestion de bases de données : PHPMYADMIN.
L'écran ci-dessous doit apparaître :
-
Saisir le nom de la nouvelle base (sans espaces et sans accent)
-
Et choisir ici l'interclassement : latin1_general_ci
-
puis cliquer sur le bouton Créer.
Un message de confirmation indique que la base de données a été créée.
Remarques importantes :
Si vous disposez des paramètres du serveur distant de votre hébergeur, respecte z les informations
communiquées par celui-ci (nom de la base de données ; nom utilisateur et mot de passe. Sinon,
avant de faire le transfert FTP du site, il vous faudra modifier le fichier php de connexion !
page 17/18
ADO BE Dreamweaver CS 3
Pages web dynamiques : PHP /MyS Q L
7.2 Ajouter un nouvel utilisateur pour la base
Après avoir créé la base, vous devez maintenant définir un utilisateur, selon les instructio ns de
votre hébergeur.
-
Revenir à l'Accueil de PHPMyAdmin (à gauche de l'écran).
-
Ensuite cliquer sur le lien Privilèges, puis cliquer sur Ajouter un utilisateur.
L'écran ci-dessous apparaît :
Ø Saisir le nom d'utilisateur ainsi que le mot de passe selo n instructions de votre
hébergeur.
Ø Saisir le nom du serveur (localhost) et sélectionner "Entrez une valeur",
Ø Cocher les privilèges à accorder à l'utilisateur (tous)
Ø Enfin, Exécuter pour créer ce nouvel utilisateur.
Remarque : Cet utilisateur vous sera demandé lors de la création de la connexion MySql dans
Dreamweaver CS3.
page 18/19
ADO BE Dreamweaver CS 3
Pages web dynamiques : PHP /MyS Q L
7.3 Créer une table
7.3.1
Définir la structure de la table
•
Sélectionner la base de données dans le menu de gauche,
•
Ensuite saisir le nom de la table (tboissons) et le nombre de champs à créer puis cliquer
sur le bouton Exécuter
•
Nommer les champs (sans accent et sans espace !!!!),
Ne pas choisir l'interclassement des champs de type texte (nomboisson – web commentaires). Il sera par défaut le même que celui précisé pour la base, soit
latin1_general_ci !
•
Définir un type pour chacun des champs,
•
Définir le champ "clé primaire" (idboisson),
•
Cliquer le bouton Sauvegarder pour créer la table .
Le champ idboisson est le champ "clé primaire" de la table .
Choisir auto_increment (dans la colonne Extra) pour obtenir la "numérotation automatique"
des enregistrements et cocher le bouton radio Primaire
Ce champ permet d'identifier de manière unique chaque enregistrement de la table !!
Pour mieux comprendre la structure de la table, voici la description des différents types choisis :
•
SMALLINT représente un n ombre entier entre 0 et 65535 (l'attribut UNSIGNED pour non
signé (facultatif), ne permet que des nombres positifs). Par rapport au type INT, SMALLINT
prend moins de place mémoire et permet de coder des nombres moins grands. Il reste
néanmoins amplement suffisant pour notre compteur.
•
VARCHAR représente une chaîne de caractères alphanumériques de longueur variable à
préciser dans la colonne "taille/valeurs" avec un maximum de 255.
•
TEXT est un type d e données pouvant stocker jusqu'à 65 535 caractères.
•
LONGTEXT, lui, peut en stocker jusqu'à 4 294 967 295 !
Ces types sont utiles pour stocker un contenu dont on ne connaît pas la taille à priori.
page 19/20
ADO BE Dreamweaver CS 3
Pages web dynamiques : PHP /MyS Q L
L'écran ci-dessous apparaît :
7.3.2
Saisir les enregistrements (données)
Pour saisir les données dans la table, cliquer sur le bouton
Saisir 4 enregistrements minimum !
(haut de la fenêtre).
Depuis la version 2.0 d'Easyphp, vous pouvez ajouter 2 enregistrements en même temps !
Saisir les données dans la colo nne "Valeur".
Ne rien saisir pour le champ "idboisson", car nous avons crée une clé primaire en auto_incrément
(numérotation automatique)!!!
Avant de cliquer sur le bouton "Exécuter", choisir dans la liste déroulante, l'action souhaitée :
Retourner à la page précédente ou Insérer un nouvel enregistrement.
page 20/21
ADO BE Dreamweaver CS 3
Pages web dynamiques : PHP /MyS Q L
7.4 Afficher les enregistrements
Cliquer sur
pour voir les enregistrements. Vous pourrez aussi modifier ou supprimer
en cliquant sur
page 21/22
ADO BE Dreamweaver CS 3
Pages web dynamiques : PHP /MyS Q L
8 Exporter - Importer des tables SQL
L'export de table(s) ou de base de données entière , génère un fichier texte au format sql contenant
les instructions SQL de structure (création de table) et/ou de données (insertion des enregistrements ).
Vous pourrez ensuite importer ces tables dans une autre base de données sur un autre poste
(local) ou vers un serveur distant (hébergeur de votre site web).
•
Sélectionner la base de données (pour exporter plusieurs tables !) ou sélectionner la table
concernée dans le menu de gauche,
•
Cliquer le bouton Exporter pour accéder au "Schéma et données de la base"
•
Sélectionner la ou les table (s) à exporter,
•
Choisir (à gauche) le format d'exportation : SQL
•
Cocher "structure" et " données",
•
Cocher " transmettre" avant de cliquer sur Exécuter
•
Enregistrer le fichier sql
Ce fichier sql pourra être utilisé plus tard lors de l'importation dans une autre base !!
page 22/23
ADO BE Dreamweaver CS 3
Pages web dynamiques : PHP /MyS Q L
Pour importer des tables SQL :
•
Sélectionner la base de données puis, cliquer sur le bouton Importer
•
Puis, cliquer sur le bouton Parcourir… pour sélectionner le fichier SQL (requêtes à
exécuter !)
•
Choisir le Jeu de caractères (ex : latin1), puis cliquer sur Exécuter.
Un message de confirmation assure que la requête a été exécutée avec succès !
9 Déplacer – Copier ou Renommer une table
•
Sélectionner la table, puis cliquer sur le bouton
•
Définir les propriétés de l'action souhaitée et cliquer le bouton Exécuter correspondant !!
page 23/24
ADO BE Dreamweaver CS 3
Pages web dynamiques : PHP /MyS Q L
10 Définir le site dans Dreamweaver CS3
•
Dans le menu Site, choisir Nouveau site…
1 ère étape de l'assistant :
•
Nommer le projet du site ,
•
Saisir l'adresse HTTP – Il s'agit ici de l'adresse du serveur d’évaluation (localhost) suivi
du nom de l'alias, soit :
http://localhost/nom_de_votre_alias
•
Cliquer sur Suivant>
2 ème étape :
•
Choisir la technologie de serveur PHP / MySQL, puis Cliquer sur Suivant >
page 24/25
ADO BE Dreamweaver CS 3
Pages web dynamiques : PHP /MyS Q L
3 ème étape :
•
Choisir Modifier et Tester localement (option 1),
•
puis cliquer sur le bouton
pour définir le chemin du dossier racine de votre site
4 ème étape :
•
Définir l'URL pour naviguer jusqu'à la racine de votre site (idem que l'étape 1)
http://localhost/nom_de_votre_alias
•
Cliquer sur Test de l'URL avant de Cliquer sur Suivant >
A l'étape 5, on peut définir un serveur distant (paramètres communiqués par l'hébergeur). Dans le
cas contraire, on utilise un logiciel externe "client FTP", tel que Filezilla ou ftp expert, Leech... afin
de transférer les fichiers (upload) de votre site vers le serveur de votre hébergeur.
•
Nous choisirons : Non, (pas de serveur distant)
•
Cliquer sur Suivant> puis Terminer
page 25/26
ADO BE Dreamweaver CS 3
Pages web dynamiques : PHP /MyS Q L
11 Établir une connexion à la base de données
Pour établir une connexion à une base de données lors du développement d'une application PHP
dans Dreamweaver, vous devez disposer d'une ou plusieurs bases de données MySQL et le serveur
MySQL doit être démarré !
Dans un premier temps, il faut ouvrir un nouveau document au format PHP :
•
Cliquer le menu Fichier choisir Nouveau, puis cliquer sur Page vierge
•
Choisir le type de page : PHP, puis cliquer Créer
•
Dans le panneau Application cliquer sur le bouton + de l'onglet Bases de données
•
puis choisir Connexion MySQL
•
Définir les paramètres de connexion :
1.Nom mer la connexion
(ex : cnxboissons),
2.Saisir le serveur MySQL : localhost
3.Saisir Utilisateur et mot de passe
pour la base définis dans
PhpMyAdmin,
4.Toujours cliquer sur le bouton
Selectionner… pour choisir la base
de données.
Remarques :
Après avoir cliqué OK, 1 nouveau dossier " Connections" apparaît dans l'arborescence du site
(panneau Fichiers à droite). Ce dossier contient un fichier php (code php permettant d'établir la
connexion à la base de données).
Ces paramètres de connexion pourront être modifiés directement dans le fichier php avant
transfert FTP, s’ils s’avèrent être différents de ceux de l’hébergeur (serveur distant).
Cette connexion pourra désormais être utilisée dans toutes les pages du site !
page 26/27
ADO BE Dreamweaver CS 3
12
Pages web dynamiques : PHP /MyS Q L
Créer une fiche dynamique (requête SELECT)
12.1 Conception de la page
La conception et la mise en page sont réalisées dans Dreamweaver CS3 (voir le support de cours
concerné),
•
Dans un nouve au document PHP, créer un tableau
exemple :
•
Enregistrer la page dans le dossier de votre site (ex : ficheboissons.php).
12.2 Création du jeu d'enregistrements
Un jeu d'enregistrements est une requête SQL qui va permettre à partir de la connexion, de
sélectionner des champ(s) d’une ou plu sieurs table(s).
Ces champs appelés aussi textes dynamiques pourront ensuite être affichés dans la page web par
un simple cliquer-glisser vers le tableau.
Dans le panneau Application sur l'onglet Liaisons, cliquer sur le + et choisir Jeu
d’enregistrement (Requête) :
La boite de dialogue ci-dessous apparaît :
Dans l'exemple ci-contre, la
requête permet d'afficher tous les
champs (colonnes) de la table
"tboissons" selon la connexion
"cnxboissons".
Cliquer sur le bouton OK pour
valider.
page 27/28
ADO BE Dreamweaver CS 3
Pages web dynamiques : PHP /MyS Q L
Afficher les textes dynamiques du jeu d'enregistrements dans la page :
•
Cliquer-glisser les champs dynamiques du jeu d'enregistrements (onglet liaisons – Panneau
Application) vers la cellule du tableau correspondante .
12.3 Créer une barre de navigation
Afin de pouvoir atteindre l'enregistrement Suivant ou Précédent, nous allons créer une barre de
navigation.
Préparer la barre de navigation :
•
Dans un nouveau tableau (1 ligne et 4 colonnes), saisir les légendes ( Début – Précédente –
Suivante – Fin). On peut aussi insérer des boutons (images) à la place des légendes.
Créer les liens :
- Sélectionner dans la page la source du lien (ex : début)
- Dans le panneau Application, choisir l'onglet Comportements de serveur
page 28/29
ADO BE Dreamweaver CS 3
•
Pages web dynamiques : PHP /MyS Q L
Cliquer sur le + et choisir Pagination du jeu d’enregistrement puis le comportement qui
convient :
Ø
Ø
Ø
Ø
Déplacer vers la
Déplacer vers la
Déplacer vers la
Déplacer vers la
première page
page précédente
page suivante
dernière page
Pour n'a fficher ces liens que lorsqu'ils sont nécessaires, il est possible d ’ajouter un comportement
de serveur. Exemple : pour le lien « début » : Sélectionner le texte, puis choisir :
Ø
Afficher la région è Afficher si ce n’est pas la première page
12.4 Créer un état de navigation
Afin de numéroter les fiches (X sur Y) :
•
Placer le curseur dans votre page et choisir le comportement de serveur Afficher le
nombre d'enregistrements puis
- Afficher le numéro de l’enregistrement de début (index de départ : X)
- Afficher le nombre total d’enregistrements (index total : Y)
Résultats !
Etat de navigation
Barre de navigation
•
Enregistrer et tester votre page web dynamique dans votre navigateur (F12).
Vous devez obtenir ceci :
page 29/30
ADO BE Dreamweaver CS 3
Pages web dynamiques : PHP /MyS Q L
13 Ajouter un enregistrement (Requête INSERT INTO)
Ici, nous allons voir comment insérer un nouvel enregistrement dans une table à l’aide d’un
formulaire HTML.
Pour ce faire, 2 pages seront nécessaires. La première pour saisir les données (ex : ajouter1.php),
et une seconde pour confirmer l’ajout (ex : ajouter2.php).
13.1 Créer le formulaire
Dans la page "ajouter1.php" :
•
A l’aide du panneau Insertion - onglet Formulaires, Insérer un formulaire en cliquant
sur le premier bouton de la barre d'outils
•
Insérer un tableau dans ce formulaire pour tabuler les données
•
Ajouter les champs de texte nécessaires (2 ème bouton de la barre d'outils)
Barre d'outils
Formulaires
Formulaires
Panneau
Propriétés
•
Nommer chacun des champs de texte (noms identiques aux champs de la table !)
à l'aide du panneau des Propriétés (bas de l'écran)
•
Ajouter un bouton de commande pour poster le formulaire.
page 30/31
ADO BE Dreamweaver CS 3
Pages web dynamiques : PHP /MyS Q L
Pour déclencher l'action vers la base de données, nous allons créer un comportement de serveur
:
•
Dans le panneau Application, cliquer l'onglet Comportements de serveur, choisir
Insérer un enregistrement
La fenêtre ci-dessous apparaît :
•
Sélectionner votre connexion, la table , et la page à atteindre après l'insertion des données
(ajout2.php pour l'exemple).
•
Dans l’encadré Colonnes :
Vérifier que chaque champ de la table trouve une correspondance avec le champ du
formulaire.
Si ce n'est pas le cas, il suffit de faire l’association en sélectionnant le champ dans
l’encadré colonnes avec le champ du formulaire correspondant dans la liste valeur.
•
La clé primaire est bien entendu inutilisée, car elle s ’incrémente automatiquement dans la
table !
•
Valider par OK
Remarque : Prévoir le mode NULL (lors de la création de la table) pour les champs qui ne seront
pas obligatoires dans le formulaire !
page 31/32
ADO BE Dreamweaver CS 3
Pages web dynamiques : PHP /MyS Q L
13.2 Créer la page de confirmation
Dans la page "ajouter2.php" :
Dans cette page, un message de confirmation suffit, avec un lien de retour sur une la page
souhaitée (ex : ficheboissons.php).
Enregistrer vos 2 pages et tester l'ajout depuis la page de saisie des données (ajouter1.php).
14
Supprimer un enregistrement (requête DELETE)
Afin de supprimer un enregistrement de la table via un formulaire, nous allons créer 3 pages :
-
une page pour choisir l'enregistrement à supprimer (ex : supprime1.php)
-
une page pour vérifier et confirmer (ex : supprime2.php)
-
une page pour la suppression et la confirmation (ex : supprime3.php)
14.1 Créer le formulaire pour choisir
Dans la page "supprime1.php" :
•
Créer un formulaire, puis un tableau
•
Insérer un champ liste/menu
•
Dans le panneau des Propriétés (bas de l'écran) Nommer la liste "boissons",
IMPORTANT : le nom donné au champ (variable de formulaire) nous servira en page 2
pour effectuer le filtre de l'enregistrement à afficher !!
•
Insérer un bouton valider (champ de formulaire) pour poster le formulaire
page 32/33
ADO BE Dreamweaver CS 3
Pages web dynamiques : PHP /MyS Q L
•
Créer un jeu d'enregistrements pour la liste dynamique
(Sélectionner Tous les champs de la table : Tboissons),
•
Sélectionner le champ liste dans la page web et cliquer le bouton dynamique dans le
panneau Propriétés :
•
Définir ici le contenu de la liste (étiquettes) et sa valeur (champ posté en page 2)
Valeurs : idboisson
Etiquettes : nomboisson
champ clé primaire de la table permettant d'identifier
l’enregistrement à supprimer
champ utilisé pour le contenu de la liste
Afin de pouvoir atteindre la page 2 au clic du bouton valider, définir l'action du formulaire :
•
Sélectionner le formulaire en cliquant sur la balise <form#form1>
•
Définir les propriétés du formulaire :
Action : supprime 2.php (cliquer parcourir pour sélectionner page PHP)
Méthode : POST
page 33/34
ADO BE Dreamweaver CS 3
Pages web dynamiques : PHP /MyS Q L
Remarque :
Les paramètres de formulaire sont envoyés au serveur au moyen d'un f ormulaire HTML qui utilise la méthode
POST ou GET. Si la méthode utilisée est POST, les paramètres sont envoyés dans le corps du message. La
méthode GET, en revanche, annexe les paramètres à l'URL demandée.
Résultats !
14.2 Créer la page de vérification
Dans la page "supprime2.php" :
Cette page affiche l'enregistrement choisi dans la page précédente dans le but d'être supprimé.
•
Création d'un formulaire, puis un tableau
•
Ajouter un bouton pour supprimer
•
Créer un jeu d'enregistrement (Rboissons) avec filtre (pour afficher uniquement
l'enregistrement à supprime r)
Le filtre est établi à partir du champ "idboisson" (champ défini comme valeur de la liste dynamique )
strictement égal à (=) la variable de formulaire "boissons" (nom du champ liste/menu de la page
supprime1.php)
•
Glisser chacun des champs dynamiques du jeu d'enregistrement dans le tableau
•
Définir les propriétés du formulaire (pour atteindre la page 3 )
Action : supprime3.php - Méthode : POST
•
Dans la zone de formulaire (pointillés rouge), ajouter un champ masqué, de façon à
pouvoir identifier la boisson à supprimer dans la table en utilisant la clé primaire :
- Placer le curseur dans le formulaire,
cliquer sur le bouton champ masqué
page 34/35
ADO BE Dreamweaver CS 3
•
Pages web dynamiques : PHP /MyS Q L
Sélectionner le champ masqué et définir ses propriétés :
- Nommer ce champ "idboisson" (comme le champ clé primaire de la table )
- Cliquer sur le petit bouton "eclair", dans le panneau des propriétés afin de définir la
valeur dynamique au champ masqué
- Sélectionner, comme ci-dessus, le champ clé primaire "idboisson"
Vous devez obtenir ceci :
page 35/36
ADO BE Dreamweaver CS 3
Pages web dynamiques : PHP /MyS Q L
14.3 Supprimer l’enregistrement sélectionné
Dans la page "supprime3.php" :
La 3 ème page permet de supprimer l'enregistrement choisi dans la page 1.
•
Dans la liste des comportements de serveur, choisir " Supprimer l’enregistrement"
Ici, on utilise, bien entendu, le champ clé primaire "idboisson" pour effectuer la suppression dans la
table "tboissons", selon la variable de formulaire "idboisson" (nom du champ masqué).
•
Saisir un message de confirmation et créer lien(s) de redirection.
page 36/37
ADO BE Dreamweaver CS 3
Pages web dynamiques : PHP /MyS Q L
15 Modifier un enregistrement (requête UPDATE)
Pour modifier un enregistrement, nous allons créer 3 pages :
-
une page pour choisir l'enregistrement à modifier (ex : modif1.php)
-
une page pour vérifier et modifier (ex : modif2.php)
-
une p age pour la confirmation (ex : modif3.php)
15.1 Créer le formulaire pour choisir
Dans la page "modif1.php" (idem que page supprime1) :
•
Créer un formulaire, puis un tableau
•
Insérer un champ liste/menu et Nommer la liste "boissons",
•
Insérer un bouton de commande pour poster le formulaire
•
Créer un jeu d'enregistrements pour la liste dynamique,
•
Sélectionner la liste et cliquer le bouton
Valeurs : idboissson
Etiquettes : nomboisson
•
Il ne reste plus qu'à renseigner les propriétés du formulaire.
Action : modif2.php - Méthode : POST
dans le panneau Propriétés :
15.2 Créer la page de vérification/modification
Dans la page "modif2.php" :
Cette page affiche l'enregistrement à modifier, choisi dans la page précédente.
•
Création d'un formulaire et insérer un tableau
•
Ajouter des champs de texte (pour pouvoir saisir les modifications)
•
Nommer chacun d es champs du formulaire ( utiliser les mêmes noms que les champs de la table
•
Insérer un bouton pour envoyer le formulaire
: nomboisson – web – commentaires)
page 37/38
ADO BE Dreamweaver CS 3
•
Pages web dynamiques : PHP /MyS Q L
Créer un jeu d'enregistrement (Rboissons) avec filtre (pour afficher uniquement
l'enregistrement à modifier)
Le filtre est établi à partir du champ " idboisson" (champ défini comme valeur de la liste dynamique )
strictement égal à (=) la variable de formulaire "boissons" (nom du champ liste/menu de la page
modif1.php)
•
Glisser les champs dynamiques du jeu dans les champs du formulaire (voir ci-dessus)
•
Insérer un champ masqué dans le formulaire :
nommer idboisson avec valeur dynamique idboisson (cliquer le bouton « éclair »).
page 38/39
ADO BE Dreamweaver CS 3
•
Pages web dynamiques : PHP /MyS Q L
Créer le comportement de serveur : Modifier l’enregistrement
Après avoir vérifié la correspondance entre les éléments de formulaire et les champs de la table, il
convient de préciser la page à atteindre après la mise à jour (ex : modif3.php).
•
Valider par OK
Dans la page "modif3.php" :
•
Saisir un message de confirmation et créer lien(s) de redirection.
page 39/40
ADO BE Dreamweaver CS 3
Pages web dynamiques : PHP /MyS Q L
16 Ajouter un champ dans une table
A tout moment vous pourrez ajouter un ou plusieurs champs dans vos tables. Mais il ne faudra pas
oublier d'actualiser chacune de vos pages web (jeu d'enregstrements) !
•
Sélectionner la base et la table " tboissons"
•
Définir le nombre de champ(s) à ajouter et leur position, puis
•
Cliquer Exécuter
•
Créer le champ ci-dessous puis sauvegarder
Nous utiliserons ce champ au chapitre suivant pour apprendre à rechercher des enregistrements !
•
Afficher la table (données)
•
Modifier chacun des enregistrements pour saisir le type
page 40/41
ADO BE Dreamweaver CS 3
Pages web dynamiques : PHP /MyS Q L
Vous devez obtenir ceci (on en profite pour ajouter des nouveaux enregistr ements !) :
17 Rechercher des enregistrements (Clause WHERE)
Pour rechercher un ou plusieurs enregistrement(s), nous allons maintenant créer 2 pages, une
pour définir le critère de recherche (ex : rech1.php), et une seconde pour afficher le résultat (ex :
rech2.php).
Dans un premier temps, nous allons faire une recherche simple, portant sur 1 seul critère (type) !
17.1 Créer le formulaire de recherche
Dans la page "recherche1.php" :
•
Dans un formulaire, insérer un tableau
•
Insérer un champ liste/menu nécessaire pour la recherche
•
Nommer ce champ liste : "types" (variable de formulaire !),
•
Insérer un bouton de commande (Go !) pour poster le formulaire.
page 41/42
ADO BE Dreamweaver CS 3
•
Pages web dynamiques : PHP /MyS Q L
Créer un jeu d'enregistrements pour la liste dynamique (type),
Cette requête sélectionne uniquement le champ "type" de la table "tboissons" et trie les
enregistrements par ordre croissant de type.
Le test de la requête vous donne ceci :
Nous devons maintenant regrouper les type(s) identiques de
façon à annuler les doublons !
•
•
Afficher la requête en mode Avancé…
Saisir l'instruction SQL :
GROUP BY type
Important : l'instruction ORDER BY (trier) devra toujours être positionnée en fin de requête !
Vous devez maintenant obtenir ceci:
page 42/43
ADO BE Dreamweaver CS 3
•
Sélectionner la liste, cliquer le bouton
Pages web dynamiques : PHP /MyS Q L
dans le panneau Propriétés,
Pour pouvoir obtenir tous les types
(en plus des 3 définis par la requête),
nous ajoutons ici une option statique :
L’étiquette "Tous" sera affichée au
chargement de la page dans la liste.
La valeur "%" est la valeur qui sera
interprétée et analysée dans la requête
SQL comme Tous.
•
Cliquer sur le bouton + pour ajouter
l'option statique !
•
Enfin, Sélectionner la balise <form> et définir les propriétés du formulaire :
Vous devez obtenir ceci :
Aperçu dans le navigateur (Touche F12) :
page 43/44
ADO BE Dreamweaver CS 3
Pages web dynamiques : PHP /MyS Q L
17.2 Créer la page de résultats
Dans la page "recherche2.php" :
La page de résultats doit afficher tous les enregistrements correspondants au critère défini dans la
page 1.
•
Créer un tableau
•
Créer un jeu d'enregistrements avec le Filtre suivant :
champ "type" contient la variable de formulaire "types"
Le tri est facultatif.
•
Glisser les champs dynamiques du jeu dans le tableau de résultats
•
Placer le curseur (haut de page) et insérer le Comportements de serveur suivant :
Afficher le nombre d'enregistrements è Afficher le nombre total
•
Choisir le Jeu et cliquer OK
page 44/45
ADO BE Dreamweaver CS 3
Pages web dynamiques : PHP /MyS Q L
Vous devez obtenir ceci :
Créer un comportement de serveur "Région Répétée" qui va permettre l'affichage de tous les
enregistrements trouvés (boucle While).
•
Sélectionner les lignes du tableau à répéter (pour notre exemple : les 2 dernières lignes)
•
Dans la fenêtre des Comportements de serveur, cliquer bouton
•
Choisir Région répétée
•
Choisir le jeu d'enregistrements et cliquer "tous les enregistrements", puis Ok.
•
Créer un lien de retour vers la page 1.
+
page 45/46
ADO BE Dreamweaver CS 3
Pages web dynamiques : PHP /MyS Q L
Vous devez obtenir ceci :
Exemple de résultats à partir du critère (page rech1) : Eau minérale
page 46/47
ADO BE Dreamweaver CS 3
18
Pages web dynamiques : PHP /MyS Q L
Les images dynamiques
Pour afficher une image dynamique dans une page PHP, nous avons besoin de 2 choses :
-
1 champ dans une table qui va stocker le nom du fichier image avec son extension
(.gif ; .jpg…),
-
Les fichiers images dans un dossier du site !! J
•
Si nécessaire, dans le dossier racine du site, créer un nouveau dossier "photos"
•
Placer dans ce dossier les fichiers images pour chacune des 8 boissons,
•
Ajouter un nouveau champ dans la table "tboissons" - voir chapitre page 40
•
Saisir le champ "photo" de type VARCHAR (30) et sauvegarder,
•
Modifier chaque enregistrement de la table de façon à saisir le nom du fichier de la photo.
Vous devez obtenir ceci :
•
Reprendre la page de résultats de recherche "rech2.php"
•
Actualiser le Jeu d'enregistrement (pour y ajouter le champ "photo")
• Sélectionner le Jeu, puis
• Cliquer ici pour Actualiser
le jeu (requête)
Le nouveau champ doit
apparaître dans le Jeu
d'enregistrements !
page 47/48
ADO BE Dreamweaver CS 3
Pages web dynamiques : PHP /MyS Q L
•
Ajouter une colonne au tableau,
•
Placer le curseur dans la cellule et cliquer sur bouton "image" :
• Cliquer Source de
données
• Développer le jeu
d'enregistrements (+) si
besoin, et sélectionner le
champ "photo"
• Dans la zone URL, saisir
devant le code php le nom du
dossier des images, soit :
photos/
• Cliquer Ok pour valider.
L'image dynamique !
Remarque : La taille de l'image peut accessoirement être réduite dans le panneau des Propriétés de
Dreamweaver - Attention ! Redimensionnez soit la hauteur (H), soit la largeur (L) de façon à conserver la
proportionnalité de l'image.
page 48/49
ADO BE Dreamweaver CS 3
•
Pages web dynamiques : PHP /MyS Q L
Enregistrer et Tester (F12) depuis la page reche1.php (choisir Tous les types).
Vous devez obtenir quelque chose comme ceci :
page 49/50
ADO BE Dreamweaver CS 3
Pages web dynamiques : PHP /MyS Q L
19 Créer un lien dynamique
Dans la page rech2.php, nous allons créer un lien dynamique vers le site web de la marque:
•
Ouvrir la page "rech2.php"
•
Sélectionner dans le tableau le texte dynamique "web" :
•
Dans le panneau "propriétés", cliquer parcourir (dossier jaune !) de la zone de texte Lien,
• Cliquer sur Source
de données
• Si besoin, cliquer
sur + pour
développer le jeu
d'enregistrements ,
puis sélectionner le
champ dynamique
(web pour
l'exemple)
• OK pour valider.
Dans la zone URL, si besoin, ajouter le protocole "http://" s'il n'a pas été saisi dans le champ de
votre table, ("http://", "ftp://" ou "mailto:")
Ajouter la cible _blank pour
que le lien s'ouvre dans une
nouvelle fenêtre de
navigateur!
page 50/51
ADO BE Dreamweaver CS 3
•
Pages web dynamiques : PHP /MyS Q L
Enregistrer et Tester votre page web dans votre navigateur (F12).
Vous devez obtenir ceci :
page 51/52
ADO BE Dreamweaver CS 3
Pages web dynamiques : PHP /MyS Q L
20 Recherche multicritères
Nous allons maintenant ajouter un second critère de recherche dans la page de rech1.php.
•
Tout d'abord, Ouvrir votre base de données (phpmyadmin)
•
Ajouter un nouveau champ (stock) dans votre table "tboissons" :
•
Mettre à jour chaque enregistrement, de façon à obtenir ceci :
•
Retourner dans Dreamweaver CS3 et ouvrir les pages "rech1.php" et "rech2.php"
page 52/53
ADO BE Dreamweaver CS 3
Pages web dynamiques : PHP /MyS Q L
Dans la page "rech1.php" :
•
Dans le formulaire ajouter un champ de texte,
•
Nommer ce champ "stockmaxi" (sans les guillemets !! J )
•
Enregistrer votre page.
Vous devez obtenir ceci :
• NE PAS
OUBLIER de
nommer le
champ (variable
de formulaire)
Dans la page "rech2.php" :
Nous allons maintenant ajouter un deuxième filtre concernant ce nouveau critère
d'enregistrement existant !!
dans le jeu
•
Ouvrir le jeu d'enregistrement "Rboissons" par un double clic dans la fenêtre Liaisons
du panneau "Application",
•
Cliquer sur bouton " Avancé" pour ajouter le 2 ème filtre :
page 53/54
ADO BE Dreamweaver CS 3
Pages web dynamiques : PHP /MyS Q L
En mode Avancé, saisir
dans la zone "SQL" le 2 ème
filtre (clause "WHERE") :
Cliquer sur le + pour
déclarer la 2ème
variable colname2
utilisée dans la clause
WHERE.
•
Ajouter le nouveau texte dynamique "stock" dans le tableau,
•
Enregistrer et Tester dans le navigateur.
Vous devez obtenir ceci :
Exemple : Recherche de tous les types avec un stock maxi de 65
page 54/55
AND stock <= colname2
ADO BE Dreamweaver CS 3
Pages web dynamiques : PHP /MyS Q L
21 Requête de Jointure (INNER JOIN)
•
Pour notre exemple , nous allons créer une nouvelle table "tboissons_types" et modifier la
structure de la table (mère) "tboissons" !
Schéma de la jointure :
• Désormais, ce
champ (type) n'a
plus lieu d'exister !
• Nouveau champ à
ajouter (pour la
jointure)
Tboissons
idboisson (clé)
nom
web
commentaires
(type)
photo
stock
idtype
Tboissons_types
idtype (clé)
type
•
Saisir les différents types de boissons existants :
•
Dans la table "tboissons" supprimer l'ancien champ "type"
Pour pouvoir établir la jointure entre les 2 tables (tboissons et tboissons_types), nous allons
modifier la structure de la table "tboissons en y ajoutant le champ (idtype), ce qui permettra
d'affecter un type à chaque boisson (en utilisant la valeur idtype de tboissons) !
•
Sélectionner la table "tboissons", et ajouter 1 champ en fin de table
page 55/56
ADO BE Dreamweaver CS 3
Pages web dynamiques : PHP /MyS Q L
Pour pouvoir créer la jointure entre les 2 tables le type de champ doit être identique, soit ici
"smallint" !
•
Modifier chacun des enregistrements de "tboissons". Vous devez obtenir ceci :
Pour saisir la valeur du type de la boisson, vous pouvez aussi exécuter des requêtes de mise à jour
(UPDATE) – voir annexe "Commandes SQL".
Supprimer l'ancien champ "type" de la table "tboissons" !
Reprendre les pages rech1.php et rech2.php :
•
Ouvrir la page "rech 2.php"
•
Ouvrir le jeu d'enregistrement existant et compléter le code SQL :
Dans l'instruction SELECT :
Sélectionner tous les champs (*) des 2 tables
Dans l'instruction FROM :
Créer une jointure… (INNER JOIN) en utilisant les champs… (ON)
Dans la clause WHERE (filtre) :
Préciser la table.
page 56/57
ADO BE Dreamweaver CS 3
Pages web dynamiques : PHP /MyS Q L
22 Paramètre d'URL
Jusqu'à présent nous avons appris à transmettre des valeurs d'une page web à l'autre par le biais
de formulaire (variables) en utilisant la méthode POST. D'où le traitement des variables en PHP
avec $_POST !
Dans ce nouveau chapitre , nous allons apprendre à transmettre une ou plusieurs valeurs d'une
page web à l'autre par le biais d'un lien (balise HTML <a>) enrichi d'un paramètre URL.
Pour notre exemple, à p artir d'une page de résultats (rech2.php), nous allons créer un lien ( avec
paramètre d'URL) pour afficher la "fiche détaillée" de l'enregistrement.
Deux pages seront donc nécessaires pour notre exemple :
•
Créez une nouvelle page php et enregistrez la sous : fichedetail.php
•
Ouvrir la page rech2.php créée précédemment
Créer le lien avec paramètre URL :
Syntaxe du lien :
nom_fichier.PHP?nom_parametreURL=valeur_parametreURL
C'est la page php à
atteindre (fiche
détaillée)
Nom quelconque, mais
il est préférable de
reprendre le même nom
que le champ "clé
primaire" de la table
(ex : idboisson).
Valeur dynamique
provenant du jeu
d'enregistrement crée
dans la page rech2.
(champ idboisson)
•
Dans la page rech2.php, ajouter une colonne au tableau
•
Insérer une image clipart "loupe" par exemple ou saisir le texte Voir
•
Modifier le tableau de résultats de façon à obtenir ceci :
•
Sélectionnez la source du lien (image "loupe ou texte Voir)
•
Dans le panneau des Propriétés, zone de Lien, cliquez le bouton " Rechercher le fichier"
page 57/58
ADO BE Dreamweaver CS 3
Pages web dynamiques : PHP /MyS Q L
•
Sélectionnez le fichier PHP à atteindre : (fichedetail.php), puis cliquer le bouton
Paramètres…
•
Saisir le nom du paramètre (nom du champ clé primaire de la table : idboisson)
•
Cliquer sur
page 58/59
(de droite, colonne valeur) pour attribuer la valeur dynamique au paramètre,
ADO BE Dreamweaver CS 3
•
Pages web dynamiques : PHP /MyS Q L
Sélectionnez dans le jeu d'enregistrement le champ idboisson et cliquez OK
Vous devez obtenir ceci :
•
Cliquer sur OK pour valider, vous devez obtenir ceci :
•
Enregistrer la page.
page 59/60
ADO BE Dreamweaver CS 3
Pages web dynamiques : PHP /MyS Q L
Voici le code du lien que vous devez obtenir dans votre page :
Remarque :
Il est possible de transmettre plusieurs paramètres dans un même lien. Les paramètres seront
alors attachés avec le caractère de concaténation ! : &
Syntaxe double paramètres :
nom_fichier.PHP ?nom_parametreURL-1 =valeur_parametreURL-1 & nom_parametreURL-2=valeur_parametreURL-2
Créer la page "fichedetail.php" :
•
Dans la page " fichedetail.php", créer un nouveau jeu d'enregistrements - Cette requête
devra avoir une jointure (car 2 tables !) et un filtre (paramètre URL : idboisson)
page 60/61
ADO BE Dreamweaver CS 3
Pages web dynamiques : PHP /MyS Q L
•
Créer la fiche détaillée avec tous les champs du jeu, vous devez obtenir ceci :
•
Enregistrer (CTRL S) et tester (F12) dans le navigateur depuis la page rech1 !
Vous devez obtenir ceci :
page 61/62
ADO BE Dreamweaver CS 3
Pages web dynamiques : PHP /MyS Q L
23 Accès restreint
Pour limiter l'accès à certaines pages d 'un site, 2 étapes sont à considérer :
Ø
La première étape est la connexion de l'utilisateur (identification par "login" et "mot
de passe") et la vérification de ses droits.
Ø
La deuxième étape restreint l'accès à la page en fonction de la connexion établie.
Pour notre exemple, nous allons créer un accès réservé à l'administrateur avec un niveau "chef" !
Mais cette technique peut être utilisée pour des accès membres dans la partie "publique" du site !
23.1 Création de la table des identifiants
•
•
Créer la structure de la table tadmin avec 4 champs:
-
l'email (clé primaire),
-
le nom ou pseudo (login),
-
le mot de passe (password),
-
le droit de l'utilisateur (niveau).
Créer 2 enregistrements avec niveau différent
23.2 Création des pages
Créer les 4 pages php suivantes :
connexion.php
accueil.php
Page permettant
l'identification (avec
contrôle du niveau !) pour
atteindre la page accueil.php
Page à afficher après
correcte identification et
restriction en tant que "chef"
!
page 62/63
erreur.php
Page si erreur de frappe du
mot de passe
accesrefuse.php
Page si autre que "chef"
essaye de se connecter ou si
pas de connexion !
ADO BE Dreamweaver CS 3
Pages web dynamiques : PHP /MyS Q L
Page connexion.php :
•
Créez un formulaire avec un tableau de 4 lignes et 2 colonnes…
•
Insére z les 2 champs de texte (input) et nommez les respectivement :
"login" et " password" (sans les guillemets !! J )
Pour le mot de passe, cocher l'option mot de passe dans le panneau des propriétés, afin de masquer la
saisie.
•
Ajoutez un bouton de formulaire .
Vous devez obtenir ceci :
•
Dans la fenêtre Application, onglet Comportements de serveur, choisir "
Authentification de l'utilisateur" puis "Connecter l'utilisateur" :
page 63/64
ADO BE Dreamweaver CS 3
Pages web dynamiques : PHP /MyS Q L
Page accueil.php
Dans cette page, nous devons "Restreindre l'accès" avec le niveau : "chef" !
•
Dans la fenêtre Application, l'onglet Comportements de serveur, choisir
Authentification de l'utilisateur puis Accès restreint à la page
•
Choisir l'option de restriction : - utilisateur, mot de passe et niveau d'accès
•
Cliquer sur le bouton Définir…, pour préciser le niveau : chef
•
Saisir le nom du niveau crée dans la table (soit : chef, pour notre exemple !) et cliquer
sur + pour ajouter le niveau (plusieurs niveaux peuvent être crées !), cliquez OK
•
Cliquez Parcourir… pour sélectionner la page à afficher en cas de refus
Remarque :
Toutes les pages qui seront appelées depuis l'accueil devront également avoir un "accès restreint" !
page 64/65
ADO BE Dreamweaver CS 3
Pages web dynamiques : PHP /MyS Q L
Créer le lien de déconnexion :
•
Dans la page accueil.php, sélectionner texte "se déconnecter" ou une image, puis
•
Choisir le comportement de serveur Authentification de l'utilisateur puis Déconnecter
l'utilisateur
Dans la page erreur.php :
•
Saisir un message et créer un lien de redirection vers la page connexion.php.
Dans la page accesrefuse.php :
•
Saisir un message et créer un lien de redirection.
page 65/66
ADO BE Dreamweaver CS 3
Pages web dynamiques : PHP /MyS Q L
ANNEXES
23.3 Les opérateurs : la "grammaire" de PHP
Source : phpfrance.com
Bien que la liste des différents opérateurs soit disponible dans n'importe quel livre ou
documentation aux chapitres correspondant, il semblait judicieux de les regrouper également pour
avoir une vue d'ensemble de ceux-ci afin de savoir dans quel contexte ils s'utilisent. Voici donc un
petit résumé des opérateurs les plus utilisés en php et de leur usage.
Attention : il s'agit là d'un usage générique, certains opérateurs peuvent avoir d'autres
significations selon le contexte, comme par exemple dans les expressions régulières.
- les slashes ( // ), dièse (#) et slash-etoile ( /* ... */ ) :
Ils servent à mettre en commentaire une partie du code. Le double slash et le dièse sont des
commentaires de ligne : ils mettent en commentaire tout ce qui les suit sur la ligne. Le slash-étoile
est un commentaire de bloc : il met en commentaire tout ce qui le suit jusqu'à ce qu'il trouve le
étoile-slash fermant :
PHP:
$var = 'xx'; // ceci est un commentaire de ligne, on peut aussi utiliser le #
/* ceci est un
commentaire
de bloc */
Nota : Vous trouverez parfois des commentaires de bloc commençant par /** au lieu de /*. Cette
syntaxe provient de Java qui permet de générer une documentation technique à partir des
informations contenues dans les commentaires qui débutent ainsi et qui respectent une syntaxe
particulière.
- le point-virgule ( ; ) :
Il sert à spécifier la fin d'une instruction. On en retrouve donc généralement au bout de chaque
ligne, à l'exception des blocs d'instructions (if, par exemple) qui eux sont délimités par des
accolades
PHP:
$somme = 1 + 1; // fin de l'instruction un point-virgule
if ($somme == 2) { // pas de ; pour les if, for, while, etc. mais une paire d'accolades
echo "Ca fait 2";
}
echo "abc"; echo "def"; // on peut avoir deux instructions sur une même ligne
- Les opérateurs arithmétiques ( + - * / % ) :
Ils servent aux calculs (addition, soustraction, multiplication, division et modulo (le reste entier de
la division) )
PHP:
$total = 5 + (3 * $valeur) / 2;
page 66/67
ADO BE Dreamweaver CS 3
Pages web dynamiques : PHP /MyS Q L
- Les opérateurs d'affectation ( = += -= .... ) :
L'opérateur d'assignation le plus simple est le signe égal "=". Il permet d'affecter la valeur de
droite dans la variable de gauche.
PHP:
$a = 3; // affecte la valeur 3 à la variable $a
Il existe des "opérateurs combinés" pour tous les opérateurs arithmétiques. Ils permettent
d'utiliser la valeur d'une variable dans une expression et d'affecter le résultat de cette expression à
cette variable :
PHP:
$a = 3; // affecte la valeur 3 à la variable $a
$a += 5; // équivaut à "$a = $a + 5" ce qui affecte la valeur 5+3 = 8 à la variable $a
- Les opérateurs d'incrémentation et décrémentation (++ et --) :
Ces opérateurs incrémente ou décrémente la valeur d'une variable. Comprendre qu'il incrémente
(ou décrémente) la variable avant ou après l'avoir utilisé.
PHP:
++$a;
$a++;
--$a;
$a--;
//
//
//
//
incrémente $a de 1, puis retourne $a
retourne $a, puis l'incrémente de 1
décrémente $a de 1, puis retourne $a
retourne $a, puis décrémente $a de 1
- Les opérateurs de comparaison ( == != === ... )
Les opérateurs de comparaison, comme leur nom l'indique, vous permettent de comparer deux
valeurs, voire deux type :
PHP:
$a
$a
$a
$a
$a
== $b // Cette comparaison retourne TRUE si $a est égal à $b
=== $b // Retourne TRUE si $a est égal $b ET si elles ont le même type (String, int ..)
!= $b // Retourne TRUE si $a est différent de $b
<> $b // Retourne TRUE si $a est différent de $b
!== $b // Retourne TRUE si $a est différent de $b OU si elles n'ont pas le même type
Il est également possible de comparer des valeurs numérique avec les opérateurs "supérieur ou
égal", "supérieur", "inférieur ou égal" et "inférieur" , respectivement : ">=", ">", "<=" et "<".
- le point ( . ) :
Il sert à la concaténation de chaines :
PHP:
$chaine = "chaine1" . "chaine2";
echo $chaine; // affiche : chaine1chaine2
$chaine .= "chaine3"; // équivaut à $chaine = $chaine . "chaine3"
echo $chaine; // affiche : chaine1chaine2chaine3
page 67/68
ADO BE Dreamweaver CS 3
Pages web dynamiques : PHP /MyS Q L
- la virgule ( , ) :
Elle sert à séparer les arguments passés en paramètre d'une fonction lors de l'appel et de la
déclaration. Elle permet également de séparer les valeurs d'un tableau.
PHP:
function additionne($param1, $param2) { // dans la déclaration
$total = $param1 + $param2;
return $total;
}
$resultat = additionne(123, 321); // lors de l'appel
echo $resultat; // affiche : 444
- Les opérateurs logiques ( && et || ) :
Ils servent à ajouter des conditions obligatoires ( ET ) ou facultatives ( OU ). Il est également
possible d'utiliser les instructions "AND" et "OR", mais attention, la priorité de celles-ci est
différente (notamment par rapport à l'opérateur d'affectation) et vous pourriez avoir des résultats
inattendus dans vos tests. Si vous avez un doute, privilégiez l'usage des premiers
PHP:
// cette condition est vraie si $val1 ET $val2 sont
//toutes les deux vraies OU BIEN si $val3 est vraie
if ( ($val1 && $val2) || $val3) {
...
}
Il existe également un opérateur "XOR" (le shériff de l'espace.. hum..) qui correspond à un OU
exclusif. La condition sera remplie si l'un ou l'autre des tests est vérifié, mais pas si les deux le
sont en même temps.
- le point d'exclamation ( ! ) :
Il correspond à une négation. Utilisé dans un if, il indique le contraire de la condition spécifiée :
PHP:
$condition= true;
if ($condition) {
echo 'La variable $condition est à vrai';
}
if (!$condition) { // condition inverse, elle équivaut ici à un else.
echo 'La variable $condition n\'est pas à vrai';
}
Cela peut par exemple s'avérer utile lorsque seul le "else" d'une condition vous intéresse, vous
n'avez ainsi pas à implémenter le "if()" associé, mais directement le "if()" équivalent à votre "else".
- Guillemets et apostrophes ( ' " ) :
Elles servent à délimiter une chaine de caractères. A l'intérieur de guillemets les variables sont
interprétées, mais ce n'est pas le cas avec les apostrophes. D'une manière générale, il vaut mieux
sortir les variables des chaines et utiliser le point pour les concaténer.
PHP:
$chaine1 = "chaine 1";
$chaine2 = 'chaine 2';
echo "Ma chaine est : $chaine1";
// affiche : Ma chaine est : chaine 1
echo 'Ma chaine est : $chaine1';
// affiche : Ma chaine est : $chaine1 (la variable n'est pas interprétée)
echo 'Ma chaine est : ' . $chaine1; // affiche : Ma chaine est : chaine 1
page 68/69
ADO BE Dreamweaver CS 3
Pages web dynamiques : PHP /MyS Q L
- l'antislash ( \ ) :
Il permet d'échapper un caractère pour souligner un comportement particulier. Pour une
apostrophe (ou un guillemet) il signifie que celle -ci ne termine pas la chaine mais doit être
interprétée comme le caractère qu'il représente. Dans une chaine délimitée par des guillemets, il
n'est pas nécessaire d'échapper les apostrophes, mais les guillemets doivent l'être. De même, il ne
faut pas échapper les guillemets d'une chaine délimitée par des apostrophes, mais les apostrophes
doivent l'être.
Certains caractères échappés ont également d'autres fonctions et peuvent correspondre à certain
caractère spécifique. Ainsi :
PHP:
"\n" : retour à la ligne
"\t" : tabulation
- le point d'interrogation ( ? ) et les deux points ( : ) :
Il s'agit de "l'opéra teur ternaire". C'est une syntaxe simplifiée de l'instruction if/else :
PHP:
echo (($maCondition) ? 'Le test est vrai' : 'Le test est faux');
// cette syntaxe revient au même que d'écrire :
if ($maCondition)
echo 'Le test est vrai';
else
echo 'Le test est faux';
// on peut ainsi facilment l'utiliser pour cocher/décocher par défaut une checkbox :
echo '<input type="checkbox" name="case" '.(($maCondition) ? 'checked' : '').' />';
- La flèche simple ( -> ) :
Elles est utilisée lorsque l'o n travail avec des "objets", elle permet de faire appel à une méthode ou
un attribut d'un objet instancié (pas la peine de te focaliser là dessus si tu débutes
)
PHP:
$monObjet = new Objet();
$monObjet->maMethode();
$monObjet->monAttribut;
- l'arobase ( @ ) :
Il s'agit de l'opérateur de silence. Il permet d'empêcher une fonction de retourner un éventuel
message d'alerte ou d'erreur :
PHP:
// si le fichier n'existe pas, la fonction unlink() renverrait un message d'alerte
@unlink('dossier/fichier.dat');
/* grâce à l'arobase, elle ne le fera pas, et ne polluera pas l'écran en informant
l'utilisateur que le fichier
qu'il veut supprimer n'existe pas et ne peut être supprimé..
ce dont il doit royalement se moquer :) */
Attention : Si le fichier existe mais qu'il y a une erreur de la suppression (problème de droits ou
autre) vous ne le saurez pas non plus... a manipuler avec précaution, voire à éviter en effectuant
les tests adéquats pour éviter les erreurs.
page 69/70
ADO BE Dreamweaver CS 3
Pages web dynamiques : PHP /MyS Q L
23.1 Les types de données des champs dans MySQL
MySQL supporte un grand nombre de types de colonnes, qui peuvent être rassemblés en trois
groupes : les nombres, les dates et les chaînes de caractères. Cette section présente les types
disponibles et leurs tailles de stockage, puis présente en détail chaque type. L'introduction est
volontairement brève. Une section plus précise est dédiée à chaque type, qui présente tous les
formats valides.
Les types de colonnes de MySQL sont listés ci-dessous. Les codes suivants sont utilisés dans les
descriptions :
M
Indique la taille maximale d'affichage. Le maximum légal est 255.
D
S'applique aux nombres à virgule flottante, et indique le nombre de décimales qui suivent
la virgule. Le nombre maximum est de 30, mais ne doit pas être plus grand que M -2.
Les crochets ( '[' et ']' ) indiquent les spécifications optionnelles.
Notez que si vous spécifiez ZEROFILL pour une colonne, MySQL ajoutera automatiquement
l'attribut UNSIGNED à la colonne.
Attention : vous devez garder à l'esprit que lors de la soustraction de deux entiers dont l'un est de
type UNSIGNED , le résultat ne sera pas signé !
Les types de données numériques
•
TINYINT[(M)] [UNSIGNED] [ZEROFILL]
Un très petit entier. S'il est signé, sa valeur varie entre -128 et 127 , sinon elle varie de 0 à 255 .
•
BIT
BOOL
Ce sont des synonymes de TINYINT(1) .
•
SMALLINT[(M)] [UNSIGNED] [ZEROFILL]
Un petit entier. S'il est signé, sa valeur varie entre -32768 et 32767 , sinon elle varie de 0 à 65535 .
•
MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL]
Un entier de taille moyenne. S'il est signé, sa valeur varie entre -8388608 et 8388607 , sinon elle
varie entre 0 et 16777215 .
•
INT[(M)] [UNSIGNED] [ZEROFILL]
Un entier. S'il est signé, sa valeur varie entre -2147483648 et 2147483647 , sinon elle varie entre 0 et
4294967295 .
•
INTEGER[(M)] [UNSIGNED] [ZEROFILL]
C'est un synonyme de INT .
•
BIGINT[(M)] [UNSIGNED] [ZEROFILL]
Un grand entier. S'il est signé, sa valeur varie entre -9223372036854775808 et
9223372036854775807 , sinon elle varie entre 0 et 18446744073709551615 .Quelques choses à
savoir pour bien utiliser les colonnes de type BIGINT :
Toute l'arithmétique est effectuée en utilisant des BIGINT signés ou des valeurs de type DOUBLE ,
vous ne devez donc pas utiliser de grands entiers non signés plus grand que 9223372036854775807
(63 bits) excepté avec les fonctions sur les bits ! Si vous le faites, certains des derniers chiffres du
résultat risquent d'être faux à cause des erreurs d'arrondissage lors de la conversion de BIGINT à
DOUBLE .MySQL 4.0 peut gérer les BIGINT dans les cas suivants :
Utilisation d'entiers pour stocker une grande valeur non signée dans une colonne BIGINT .
Avec MIN(colonne_big_int) and MAX(colonne_big_int) .
Lors de l'utilisation des opérateurs ( + , - , * , etc.) lorsque les deux opérandes sont des entiers.
Vous pouvez toujours stocker la valeur exacte d'un entier dans une colonne de type BIGINT en
l'enregistrant en tant que chaîne. Dans ce cas, MySQL effectuera une conversion chaîne à nombre qui
ne fait entrer en jeu aucune représentation intermédiaire en réel.
'-' , '+' , et '*' utiliseront l'arithmétique BIGINT quand les deux arguments sont des valeurs entières !
Cela signifie que si vous multipliez deux grands entiers (ou des résultats de fonctions qui retournent
des entiers) vous obtiendrez peut être des résultats inattendus quand le résultat est supérieur à
9223372036854775807 .
page 70/71
ADO BE Dreamweaver CS 3
Pages web dynamiques : PHP /MyS Q L
•
FLOAT(précision) [UNSIGNED] [ZEROFILL]
Un nombre à virgule flottante. précision <=24 pour un nombre à virgule flottante de précision simple,
entre 25 et 53 pour une précision double. Ces types correspondent aux types FLOAT et DOUBLE décrits
ci-dessus. FLOAT(X) a le même intervalle de validité que FLOAT et DOUBLE , mais la taille d'affichage
et le nombre de décimales sont indéfinis. Dans la version 3.23 de MySQL, c'est un véritable nombre à
virgule flottante. Dans les anciennes versions de MySQL, FLOAT(précision) avait toujours deux
décimales.
Notez que l'utilisation du type FLOAT peut vous créer des problèmes inattendus car tous les calculs
internes de MySQL sont fait en double précision. Résoudre les problèmes des lignes non retournées .
Cette syntaxe est fournie pour assurer la compatibilité avec ODBC.
•
FLOAT[(M,D)] [UNSIGNED] [ZEROFILL]
Un petit nombre à virgule flottante (précision simple). L'intervalle de validité va de -3.402823466E+38
à -1.175494351E-38 , 0 et de 1.175494351E-38 à 3.402823466E+38 . Si UNSIGNED est spécifié, les
valeurs négatives sont interdites. M représente la taille d'affichage et D est le nombre de décimales.
FLOAT sans arguments, ou avec un argument <= 24 représente un nombre à virgule flottante de
précision simple.
•
DOUBLE[(M,D)] [UNSIGNED] [ZEROFILL]
Un nombre à virgule flottante (précision double). L'intervalle de validité va de 1.7976931348623157E+308 à -2.2250738585072014E-308 , 0 et de 2.2250738585072014E-308 à
1.7976931348623157E+308 . Si UNSIGNED est spécifié, les valeurs négatives sont interdites. M
représente la taille d'affichage et D est le nombre de décimales. FLOAT sans arguments, ou avec un
argument compris entre 25 et 53 (inclus) représente un nombre à virgule flottante de précision
double.
•
DOUBLE PRECISION[(M,D)] [UNSIGNED] [ZEROFILL]
REAL[(M,D)] [UNSIGNED] [ZEROFILL]
C'est un synonyme de DOUBLE .
•
DECIMAL[(M[,D ])] [UNSIGNED] [ZEROFILL]
Un nombre à virgule flottante. Il doit être signé. Ce type se comporte comme une colonne de type
CHAR : la valeur est stockée comme une chaîne, chaque caractère représentant un chiffre de la valeur.
La virgule et le signe ' -' des nombres négatifs ne sont pas comptés dans l'option M (mais de l'espace
de stockage est réservé pour eux). Si D vaut 0, les valeurs n'auront pas de valeur décimale.
L'intervalle de validité des valeurs DECIMAL est le même que DOUBLE , mais il peut être limité par les
valeurs choisies pour M et D . Si UNSIGNED est spécifié, les valeurs négatives sont interdites.
Si D est omis, la valeur par défaut est 0. Si M est omis, la valeur par défaut est 10.
Avant la version 3.23 de MySQL, l'argument M doit inclure l'espace requis pour le signe et le point des
décimales.
•
DEC [(M[,D])] [UNSIGNED] [ZEROFILL]
NUMERIC[(M[,D])] [UNSIGNED] [ZEROFILL]
Ce sont des synonymes de DECIMAL .
Les types de données dates
•
DATE
Une date. L'intervalle de validité va de '1000-01-01' à '9999-12-31' . MySQL affiche les valeurs DATE
au format 'AAAA-MM-JJ' (année-mois-jour), mais vous pouvez assigner des valeurs aux colonnes DATE
en utilisant différents formats numériques ou de chaînes de caractères.
•
DATETIME
Une combinaison de date et d'heure. L'intervalle de validité va de '1000-01-01 00:00:00' à '9999-1231 23:59:59' . MySQL affiche les valeurs DATETIME au format 'AAAA-MM-JJ HH:MM:SS' (année-moisjour heure:minutes:secondes), mais vous pouvez assigner des valeurs aux colonnes DATETIME en
utilisant différents formats numériques ou de chaînes de caractères.
•
TIMESTAMP[(M)]
Un timestamp. L'intervalle de validité va de '1970-01-01 00:00:00' à quelque part durant l'année
2037. MySQL affiche les valeurs de type TIMESTAMP au format AAAAMMJJHHMMSS , AAMMJJHHMMSS
, AAAAMMJJ , ou AAMMJJ , suivant que le paramètre M vaut 14 (ou omis), 12 , 8 , ou 6 , mais vous
pouvez assigner des valeurs aux colonnes TIMESTAMP sous forme de nombre ou de chaînes. Une
colonne de type TIMESTAMP est pratique pour enregistrer une date, lors d'une commande INSERT ou
UPDATE , car elle est automatiquement mise à la date et l'heure du moment de la commande, si vous
ne fournissez pas de valeur vous-même. Vous pouvez aussi lui donner la date et l'heure courante en
lui assignant la valeur NULL . Types dates et heures .
Un TIMESTAMP est toujours stocké sur 4 octets. L'argument M n'affecte que le mode d'affichage de ce
type de colonne.
Notez bien que les colonnes de type TIMESTAMP(X) où X vaut 8 ou 14 sont considérées comme des
nombres tandis que les autres colonnes TIMESTAMP(X) sont considérées comme des chaînes. Ceci est
fait pour s'assurer que l'on peut exporter et importer les tables avec ces types.
•
TIME
Une heure. L'intervalle de validité va de '-838:59:59' à '838:59:59' . MySQL affiche les colonnes de
page 71/72
ADO BE Dreamweaver CS 3
Pages web dynamiques : PHP /MyS Q L
type TIME au format 'HH:MM:SS' , mais vous pouvez assigner une valeur de type TIME en lui passant
des chaînes ou des entiers
•
YEAR[(2|4)]
Une année au format 2 ou 4 chiffres (par défaut, c'est 4 chiffres). L'intervalle de validité va de 1901 à
2155 , 0000 pour le format à 4 chiffres, et de 1970 à 2069 pour le format à deux chiffres. MySQL
affiche les valeurs de type YEAR au format AAAA , mais vous pouvez leur assigner des chaînes ou des
nombres. (le type YEAR est nouveau depuis la version 3.22 de MySQL) The YEAR type .
Les types de données textes
•
[NATIONAL] CHAR(M) [BINARY]
Une chaîne de caractères de taille fixe, qui est toujours complétée à droite, par des espaces, lors du
stockage. Le paramètre M peut valoir de 0 à 255 caractères. (1 à 255 dans les versions antérieures à
la 3.23) Les espaces terminaux sont supprimés lorsque la chaîne est lue dans la base. Les valeurs de
type CHAR sont triées et comparées sans tenir compte de la casse et en utilisant le jeu de caractères
par défaut. Toutefois, vous pouvez utiliser l'opérateur BINARY pour effectuer des recherches sensibles
à la casse. NATIONAL CHAR (forme courte : NCHAR ) est la dénomination ANSI SQL pour les colonnes
de type CHAR qui doivent utiliser le jeu de caractères par défaut. C'est la configuration par défaut de
MySQL.
MySQL autorise la création de colonne de type CHAR(0) . Cela ne sert réellement que si vous devez
être compatible avec une vieille application, dont le bon fonctionnement repose sur l'existence de la
colonne, mais qui n'utilise pas vraiment ses valeurs. C'est aussi pratique lorsque vous devez stocker
un booléen (ou une valeur à deux états) dans une colonne : une colonne de type CHAR(0) , qui n'a pas
l'attribut NOT NULL, n'occupera qu'un seul octet, et peut prendre deux valeurs : NULL et "" .
•
CHAR est une forme courte de CHARACTER .
CHAR
C'est un synonyme de CHAR(1).
•
[NATIONAL] VARCHAR(M) [BINARY]
Une chaîne de c aractères de longueur variable. NOTE : les espaces terminaux sont supprimés lors du
stockage des valeurs (ce qui diffère des spécifications ANSI SQL). L'intervalle de taille de M va de 1 à
255 caractères. Les valeurs de type VARCHAR sont triées et comparées sans tenir compte de la casse
et en utilisant le jeu de caractères par défaut. Toutefois, vous pouvez utiliser l'opérateur BINARY pour
effectuer des recherches sensibles à la casse.
•
VARCHAR est une forme courte de CHARACTER VARYING.
•
TINYBLOB
TINYTEXT
Une colonne BLOB ou TEXT avec une longueur maximale de 255 (2^8 - 1) caractères. Silent column
changes . Les types BLOB et TEXT .
•
BLOB
TEXT
Une colonne BLOB ou TEXT avec une longueur maximale de 65535 (2^16 - 1) caractères. Silent
column changes . Les types BLOB et TEXT .
•
MEDIUMBLOB
MEDIUMTEXT
Une colonne BLOB ou TEXT avec une longueur maximale de 16777215 (2^24 - 1) caractères. Silent
column changes . Les types BLOB et TEXT .
•
LONGBLOB
LONGTEXT
Une colonne BLOB ou TEXT avec une longueur maximale de 4294967295 (2^32 - 1) caractères. Silent
column changes . Notez que puisque le protocole serveur/client et les tables de type MyISAM ont une
limitation de 16M par paquet communiqué / ligne, vous ne pourrez utiliser la totalité de la longueur de
ce type. Les types BLOB et TEXT .
•
ENUM('valeur1','valeur2',...)
Une énumération. Une chaîne de caractères qui ne peut prendre qu'une valeur, issue d'une liste de
valeurs 'valeur1' , 'valeur2' , ... , NULL ou la valeur spéciale d'erreur "" . Un ENUM peut avoir un
maximum de 65535 valeurs distinctes. Le type ENUM .
•
SET('valeur1','valeur2',...)
Un ensemble. Une chaîne de caractères qui a zéro ou plusieurs valeurs issues d'une liste : 'valeur1' ,
'valeur2' , ... Un SET peut avoir au maximum 60 éléments. Le type SET .
page 72/73
ADO BE Dreamweaver CS 3
23.2 Initiation au langage SQL
Pages web dynamiques : PHP /MyS Q L
(Structure Query Language)
Cette annexe explique brièvement comment rédiger des requêtes SQL simples pour créer des jeux
d'enregistrements.
L'instruction SQL la plus courante est l'instruction SELECT, qui extrait des champs spécifiques
d'une ou plusieurs table s de base de données pour g énérer un jeu d'enregistrements (requête).
La syntaxe de base de l'instruction SELECT est la suivante :
SELECT NomChamp
FROM NomTable
Vous pouvez également ajouter des sauts de ligne, des tabulations et autres espaces blancs à vos
instructions pour les rendre plus claires : SQL ignore tous les espaces blancs.
Par exemple, l'instruction suivante est correcte :
SELECT nomboisson
FROM tboissons
Sélection d'une table complète :
Si vous voulez insérer tout le contenu d'une table dans votre jeu d'enregistrements, utilisez
l'astérisque (*) comme caractère générique pour inclure l'ensemble des champs. Prenons l'exemple
d'une table nommé e tboissons.
Pour en extraire tous les champs, tapez l'instruction SELECT suivante :
SELECT *
FROM tboissons
Limite du nombre de champs (colonne) :
Supposons maintenant que vous ayez seulement besoin des données contenues dans deux
colonnes du tableau Clients : les colonnes AnneeNaissance et DateDernierAchat.
Pour créer un jeu d'enregistrements contenant uniquement les données de ces deux colonnes,
tapez l'instruction SELECT suivante :
SELECT AnneeNaissance, DatedeNaissance
FROM Clients
Limite du nombre d'enregistrements (ligne) :
Utilisez la clause WHERE pour filtrer le nombre d'enregistrements dans un jeu d'enregistrements.
Par exemple, vous souhaitez afficher les boissons dont le stock est supérieur ou égal à 50.
Votre instruction SELECT devra se présenter ainsi :
SELECT nomboisson, stock
FROM tboissons
WHERE stock >= 50
Si l'élément comparé est du texte, mettez-le entre simple quotte (apostrophes) comme dans
l'exemple suivant :
WHERE type = 'soda'
page 73/74
ADO BE Dreamweaver CS 3
Pages web dynamiques : PHP /MyS Q L
Liste des opérateurs :
=
Egal à (distingue les majuscules/minuscules)
LIKE
Egal à (ne distingue pas les majuscules/minuscules)
<>
Différent de (distingue les majuscules/minuscules)
NOT LIKE
Différent de (ne distingue pas les majuscules/minuscules)
<
Inférieur à
>
Supérieur à
<=
Inférieur ou égal à
>=
Supérieur ou égal à
Vous pouvez utiliser les caractères génériques dans les expressions conditionnelles. Le caractère
générique standard est le pourcentage (%) :
Afficher toutes les boissons dont le type commence par eau :
WHERE type LIKE 'eau%'
Spécification de plusieurs conditions dans la clause WHERE :
Vous pouvez spécifier plusieurs conditions dans la clause WHERE afin de limiter le nombre
d'enregistrements dans votre jeu d'enregistrements.
Les conditions sont combinées à l'aide des opérateurs logiques AND, OR et NOT.
S'il faut que toutes les conditions soient vraies pour inclure un enregistrement dans le jeu
d'enregistrements, utilisez l'opérateur AND :
WHERE Pays = 'Allemagne' AND Voiture = 'Ford'
S'il faut qu'une des conditions (au choix) soit vraie pour inclure un enregistrement dans le jeu
d'enregistrements, utilisez l'opérateur OR :
WHERE Pays = 'Allemagne' OR Pays = 'Hongrie'
S'il faut qu'une des conditions soit vraie et qu'une autre soit fausse pour inclure un enregistrement
dans le jeu d'enregistrements, utilisez l'opérateur NOT :
WHERE Pays = 'Allemagne' NOT Voiture = 'BMW'
Vous pouvez employer des parenthèses pour regrouper plusieurs clauses :
WHERE (Pays = 'Allemagne' AND DateDeNaissance < #1/1/70#) OR Pays = 'Hongrie'
Spécification d'une plage de valeurs dans la clause WHERE :
Vous pouvez spécifier une plage de valeurs dans la clause WHERE afin de limiter le nombre
d'enregistrements dans votre jeu d'enregistrements. La plage est définie à l'aide des mots-clés
BETWEEN...AND.
Supposons, par exemple, que vous souhaitez inclure tous les employés nés entre le 1er janvier
1960 et le 31 décembre 1974.
Votre clause WHERE peut avoir la forme suivante :
WHERE DateDeNaissance BETWEEN #1/1/1960# AND #12/31/1974#
page 74/75
ADO BE Dreamweaver CS 3
Pages web dynamiques : PHP /MyS Q L
Tri des enregistrements :
Utilisez la clause ORDER BY pour trier les enregistrements de votre jeu d'enregistrements. Par
exemple, supposons que vous vouliez trier l es enregistrements par revenu des clients, en allant du
moins élevé au plus élevé.
L'ordre des enregistrements dans l'instruction SQL sera alors le suivant :
SELECT Nom, Prénom, Revenus FROM Clients
ORDER BY Revenus
Par défaut, la clause ORDER BY trie les enregistrements dans l'ordre croissant (1,2,3... ou A, B,
C...).
Si vous souhaitez les trier dans l'ordre décroissant (du revenu le plus élevé au moins élevé),
utilisez le mot-clé DESC de la façon suivante :
ORDER BY Revenus DESC
page 75/76
Téléchargement