1. Trang chủ
  2. » Công Nghệ Thông Tin

MySQL et CSS- P4

50 325 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 50
Dung lượng 1,06 MB

Nội dung

} session_register(tentative); } Ainsi quand l’internaute atteint la fin de la troisième tentative avec une réponse fausse à la question, un nouvel écran lui demande d’envoyer un courriel au webmestre. L’ouverture d’une fenêtre avec une fonction Javascript Le formulaire oubli.php n’a pas besoin de tout l’écran pour s’afficher, nous allons donc créer une nouvelle fenêtre avec une fonction Javascript que nous appellerons ouvrir_vasistas() : <SCRIPT LANGUAGE="JavaScript"> <!-- function ouvrir_vasistas(adresse, nom_fenêtre,caracteristiques) { window.open(adresse, nom_fenêtre,caracteristiques); } </SCRIPT> Quittez la page oubli.php et dans votre page d’accueil, ajoutez le lien : Vous êtes déjà membre et vous avez peut-être <a href="#" onClick="ouvrir_vasistas(’oubli.php’,’vasistas’,’menubar=no, scrollbars=no,statusbar=no, width=300,height=200’)"> oublié votre mot de passe</A>. L’application est alors bouclée. 4.13 Récapitulation de la syntaxe des requêtes Au cours de ce chapitre, l’apprentissage de la syntaxe SQL et des fonctions MySQL a été dispensé au fur et à mesure des applications. Récapitulons-les. Récapitulation de la syntaxe des requêtes Double Poche PHP & MySQL • 151 Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark. Voici d’abord les principales commandes SQL. Ce sont des commandes communes à la plupart des bases de données. Seule leur syntaxe peut présenter des petites particularités (les types de guillemets…). Tab. 4.9 : Les principales commandes SQL Commande Description Syntaxe CREATE Crée une table CREATE TABLE nom_table (nom_colonne type(longueur)…) DELETE Efface des données DELETE FROM nom_table INSERT Insère des données INSERT INTO nom_table [(colonne1,…)] VALUES (valeur_colonne1,…) SELECT Extrait des données SELECT nom_colonne1… FROM nom_table UPDATE Modifie des données UPDATE nom_table SET nom_colonne1=’nouvelle_valeur’,… Les fonctions de MySQL présentent l’inconvénient de consommer de la ressource serveur, surtout si votre base est bien remplie. Mais elles permettent de vous épargner des lignes de codes en langage PHP. Tab. 4.10 : Quelques fonctions MySQL Fonction Description Syntaxe AVG() Retourne la moyenne des différents nombres AVG(nom_colonne1) COUNT() Compte le nombre de lignes COUNT (*) RAND() Permet d’effectuer un tri aléatoire avec ORDER BY ORDER BY RAND () 4 MySQL en action 152 • Double Poche PHP & MySQL Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark. Voici un certain nombre de clauses SQL qui modulent le résultat : WHERE Détermine les données sur lesquelles s’appliquent les commandes SQL DELETE, SELECT, UPDATE Syntaxe : WHERE nom_colonne=’valeur’ Options AND, OR, NOT Exemple DELETE FROM nom_table where nom_colonne1=2 OR nom_colonne1=5 Explication AND : les deux expressions sont vraies, OR : une expression est vraie, NOT : une expression est fausse. Ces trois opérateurs peuvent se combiner avec des parenthèses Prenons par exemple : SELECT * from membres where (pays=’HTI’ OR pays=’DMA’) AND date_misajour BETWEEN 20020401 AND 20020430. Les parenthèses donnent des priorités, ainsi OR est traité avant AND. DISTINCT Regroupe les données identiques Syntaxe : DISTINCT nom_colonne Options sans Exemple SELECT DISTINCT nom_colonne1 FROM nom_table Explication retire les doublons du résultat GROUP BY Regroupe les données identiques Syntaxe : GROUP BY nom_colonne1, nom_colonne2… Options sans Récapitulation de la syntaxe des requêtes Double Poche PHP & MySQL • 153 Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark. Exemple SELECT * FROM nom_table where nom_colonne1=2 GROUP BY nom_colonne2 Explication partitionne les résultats par champ sur lesquels il effectue les fonctions ORDER BY Ordonne les données selon la ou les colonnes choisies Syntaxe : ORDER BY nom_colonne1, nom_colonne2… Options ASC (par défaut) : ordre croissant), DESC : ordre décroissant Exemple SELECT * FROM nom_table where nom_colonne1=2 ORDER BY nom_colonne2 DESC Explication trie selon l’ordre de la table des caractères ASCII (chiffre, capitale, bas de casse…) LIMIT Limite le résultat de la requête à un certain nombre de lignes Syntaxe : LIMIT nombre_de_lignes Options LIMIT [ligne_de_début,] nombre_de_lignes Exemple SELECT * FROM nom_table where nom_colonne1=2 LIMIT 2, 30 Explication Les lignes sont numérotées à partir de 0 Voici encore quelques clauses : Tab. 4.11 : Quelques clauses Clause Description AS Désigne une donnée par un alias. LIKE Permet une recherche sur une partie de la valeur du champ avec des caractères génériques comme % ou _. RLIKE Permet une recherche avec des expressions rationnelles. 4 MySQL en action 154 • Double Poche PHP & MySQL Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark. $sql="select COUNT(*) as compte, pays.nom as nation from membres, pays where pays.code=membres.pays GROUP BY nation"; $resultat=@mysql_query($sql,$id_link); while($rang=@mysql_fetch_array($resultat)){ $nation=$rang[’nation’]; $compte=$rang[’compte’]; echo "<TR><TD><font face=\"Tahoma, Arial\" size=\"1\">$nation : </font></td><TD> <font face=\"Tahoma, Arial\" size=\"1\">$compte</font></td></tr>"; } Dans ce programme, vous considérez le nombre de membres de votre club par pays. Nous utilisons la fonction COUNT(*) pour compter le nombre de lignes qui sont ensuite regroupées par pays, ce qui nous donne le nombre de membres par pays. Nous utilisons AS pour donner un alias au nombre et un autre au pays. Nous définissons le champ avec la table, ainsi pays.code désigne le champ code dans la table pays. Voici une requête composée avec LIKE : $sql="select COUNT(*) as compte from membres, pays where membres.nom_usage LIKE ’b%’"; Dans cette requête, % remplace plusieurs caractères. Ainsi la recherche se fait sur le nombre de membres dont le nom d’usage commence par b.Si nous avions utilisé ’%b%’, la requête aurait demandé à la base de trouver un nom d’usage comportant la lettre b. Le caractère _, lui, remplace un seul caractère. $sql="select COUNT(*) as compte from membres, pays where membres.nom_usage LIKE ’b___’"; Dans cette requête, nous avons inséré trois blancs soulignés, cela signifie que nous comptons le nombre de membres dont le nom d’usage commence par b et comprend quatre lettres. Au cours des chapitres suivants, vous retrouvez ces fonctions dans diverses applications. Récapitulation de la syntaxe des requêtes Double Poche PHP & MySQL • 155 Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark. 4.14 Les procédures stockées Avec sa version 5, MySQL propose l’utilisation de procédures stockées. Ce type de fonctionnalité économise du code PHP et rend les requêtes réutilisables. Cela crée une sorte d’interface entre la base de données et le script. La commande est compilée sur le serveur et est alors disponible pour des requêtes. L’application PHP appelle la procédure en lui envoyant de nouveaux paramètres, celle-ci s’exécute en une fois et renvoie un résultat. L’opération est plus rapide qu’une requête envoyée simplement par une fonction PHP car la requête n’a besoin d’être analysée qu’une seule fois. Cette version répondra à la norme SQL 2003. 4.15 SQLite SQLite est proposée avec la version 5 de PHP. C’est une base de données sans serveur. Elle se sert de fichiers pour stocker ses données, ce qui la rend très rapide et très simple à mettre en place. Le fichier est verrouillé pour toute requête pendant un accès en écriture, ce qui rend SQLite impropre à une utilisation comportant de nombreux accès écriture. Une des particularités de SQLite est que vous pouvez créer une base dans la mémoire pour faire une opération pendant la durée de votre script. $db = sqlite_open(’:memory:’); Imaginons que vous désirez proposer les codes postaux français sur votre site. $commune=$_POST[’commune’]; if ($commune){ $db = sqlite_open(’codesPostaux.db’); // cette fonction ouvre une base existante ou en crée // une si elle n’existe pas $sql = "SELECT commune, codepostal from liste where commune LIKE ’%$commune%’"; $resultat = sqlite_query($db, $sql ); echo "Résultats trouvés :<UL>" while ($rang = sqlite_fetch_array($resultat)){ $commune=$rang[’commune’]; $codepostal=$rang[’codepostal’]; echo "<LI>$commune $codepostal</LI>" } echo "<UL>" sqlite_close($db); 4 MySQL en action 156 • Double Poche PHP & MySQL Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark. } echo <form method=\"post\" action=\"$PHP_SELF\">"; echo ’Tapez le nom de la commune<input name="commune" size="20"> <input type="submit" value="Chercher"> </form>’; Les droits sur votre répertoire de base de données N’oubliez pas de donner des droits d’écriture à votre réper- toire de travail. Cette base est très facile à monter et comporte de nombreuses fonction- nalités comme la possibilité de faire des requêtes imbriquées pour des tables jointes par exemple dans le cas d’un catalogue de livre où la collection est représenté par un numéro qui est reporté dans une table collections avec le nom en clair : SELECT titre FROM catalogue WHERE collection = (SELECT code FROM collections WHERE nom = ’e-poche’) ou SELECT catalogue.titre FROM catalogue, collections WHERE catalogue.collection = collection.code AND collection.nom = ’e-poche’ Un autre des traits de SQLite est la possibilité d’y enregistrer des fonctions PHP. Par exemple, vous pouvez décider, pour continuer l’exem- ple précédent de glisser une espace dans le code postal pour mettre en valeur le numéro de département comme par exemple 35 270 function formater_codepostal($codepostal) { return substr_replace($codepostal, ’ ’, 2, 0); } sqlite_create_function($db, ’format_code’, ’ formater_codepostal’, 1); $rangs = sqlite_array_query($db, ’SELECT format_code(’codepostal’) from ’codePostaux.db’); Cette présentation succincte sert d’introduction à cette base de données qui propose avec simplicité un certain nombre de fonctionnalités très utiles tout en ayant une capacité de 2 téraoctets. Elle est adéquate pour tout site web moyen, c’est-à-dire la grande majorité des sites. SQLite Double Poche PHP & MySQL • 157 Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark. Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark. 5 Le PHP et l’approche objet Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark. Le langage PHP, rappelez-vous, est un langage procédural, c’est-à-dire que l’application parcourt le fichier PHP ligne à ligne, de droite à gauche, lisant les instructions au fur et à mesure d’une manière linéaire. PHP 4 a intégré la programmation objet d’une façon hybride, c’est-à-dire sans en intégrer toutes les implications. En PHP 4, on peut éviter d’utiliser la programmation objet et programmer ce que l’on veut. Si maintenant vous désirez exploiter les nouvelles possibilités de PHP 5, qui a particulière- ment développé cet aspect, il vous faut en comprendre les multiples aspects. Nous verrons les différences de conception entre PHP 4 et PHP 5 en fin de chapitre pour ne pas nuire à la clarté de l’explication. Pourquoi vouloir encombrer PHP avec une option qui lui est étrangère, telle que celle d’objet ? m Figure 5.1 : Langage procédural 5 Le PHP et l’approche objet 160 • Double Poche PHP & MySQL Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark. [...]... $taille=adulte; var $etat="est arrờtộ"; function deux_roues ($couleur, $taille, $etat){ $this-> couleur = $couleur; $this-> taille = $taille; $this-> etat = $etat; } function affiche (){ echo "mon deux-roues ".$this->couleur." " $this->etat " Il est de taille " $this->taille " et de type " $this->type " avec ".$this->nbreVitesses " vitesses."; } function rouletil (){ $this->etat; setlocale (LC_ALL,... personnalisation et protộgộ par lauthentication La personnalisation et lauthentication entretiennent des liens ộtroits Le membre du club est identiộ par son nom dusage et son mot de passe, ce qui lui donne accốs des donnộes Cette identication permet ộgalement de personnaliser les pages et dy inclure le surnom de ce membre ou de donner un aspect la page tenant compte de ses goỷts Au fur et mesure que cet internaute... profil Modier ou supprimer un prol est simple Cette opộration seffectue, cụtộ programmeur, en utilisant les commandes SQL DELETE et UPDATE, respectivement pour la suppression et la mise jour : $sql="DELETE FROM membres WHERE clef=$clef"; mysql_ query($sql, $id_link); $sql="UPDATE membres SET email=$email"; mysql_ query($sql, $id_link); Il sagit maintenant de mettre ces commandes en uvre Pour une mise jour,... this watermark 5 Le PHP et lapproche objet echo $phrase; // rộsultat Cet article vaut 15$" /*il na pas ộtộ converti, cest sa copie interne la fonction qui a ộtộ convertie */ convertir_dollar_vers_euro (&$prix); echo $phrase; // rộsultat Cet article vaut 125" 5.6 PHP 5 et lobjet PHP 5 rejoint Java comme langage objet en senrichissant des fonctionnalitộs dun vrai langage objet, le rendant ainsi plus... constructeur et le destructeur Le constructeur est la mộthode qui permet la classe de construire lobjet Dans PHP 4, elle est homonyme la classe ; dans PHP 5, elle se nommera _construct() ou sera homonyme 168 Double Poche PHP & MySQL Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark PHP 5 et lobjet De la mờme maniốre, la mộthode _destruct() permet de dộtruire lobjet Dautres... civilisation est de classer diffộrents objets Double Poche PHP & MySQL 161 Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark 5 Le PHP et lapproche objet Pour crộer une classe, il faut dabord modộliser un objet, cest--dire distinguer et choisir les diffộrentes propriộtộs et mộthodes dont vous avez besoin pour le gộnộrer Prenons lobjet deux-roues ; nous allons ộnumộrer les... 5.2 : Langage objets La classe est le modốle, et lobjet est une crộation partir de ce modốle (une instance) La classe est le prototype et lobjet, son application dans des situations concrốtes Cet objet a des propriộtộs ou des attributs Ces propriộtộs sont portộes par des variables lintộrieur de la classe Les fonctions ou mộthodes de la classe concernent les actions traitộes par cette classe Une des... club, pourquoi ne pas utiliser un cookie ? Un cookie est un petit fichier qui garde les paramốtres de votre identitộ sur votre disque dur Comment faire ? Internet Explorer : allez dans le menu outils et cliquez sur option internet Ensuite vous cliquez sur longlet \"sộcuritộ\" Dans la fenờtre, activez limage du globe (internet) et cliquez sur \"personnaliser le niveau\" Ensuite vous cochez... nbreVitesses = $nbreVitesses; $this-> type = $type; $this-> etat = $etat; Double Poche PHP & MySQL 163 Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark 5 Le PHP et lapproche objet } } Pour appeler cette classe dộrivộe : include("deux_roues_class.php"); include("velo_class.php"); $monvelo=new velo (); $monvelo->etat = "roule"; $monvelo->couleur = "rouge"; $monvelo->taille... $this-> etat = $etat; $this-> identite="mon velo "; } } /* ensuite vous appelez la classe vehicule pour crộer un objet vộhicule avec la mộthode velo().*/ $monvelo=new vehicule("18", "VTT"); Ce type de procộdộ rend la classe plus simple utiliser 5.4 Le polymorphisme Le polymorphisme se dộnit comme la possibilitộ pour un objet de dộterminer la mộthode invoquer selon lobjet passộ comme argument Cette action . ’’Cet article vaut 125" 5.6 PHP 5 et l’objet PHP 5 rejoint Java comme langage objet en s’enrichissant des fonction- nalités d’un vrai langage objet,. l’objet ? Le livre que vous tenez en main est un objet ; le siège sur lequel vous êtes probablement assis est un objet. C’est un élément autonome et entier

Ngày đăng: 07/11/2013, 18:15

Xem thêm

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN