Warning: Declaration of action_plugin_popularity::register(&$controller) should be compatible with DokuWiki_Action_Plugin::register($controller) in /homepages/5/d372632784/htdocs/formation.applh.com/website/lib/plugins/popularity/action.php on line 11

Warning: Declaration of action_plugin_safefnrecode::register(Doku_Event_Handler &$controller) should be compatible with DokuWiki_Action_Plugin::register($controller) in /homepages/5/d372632784/htdocs/formation.applh.com/website/lib/plugins/safefnrecode/action.php on line 66

Warning: Cannot modify header information - headers already sent by (output started at /homepages/5/d372632784/htdocs/formation.applh.com/website/lib/plugins/popularity/action.php:11) in /homepages/5/d372632784/htdocs/formation.applh.com/website/inc/auth.php on line 377

Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /homepages/5/d372632784/htdocs/formation.applh.com/website/inc/auth.php on line 656

Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /homepages/5/d372632784/htdocs/formation.applh.com/website/inc/auth.php on line 656

Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /homepages/5/d372632784/htdocs/formation.applh.com/website/inc/auth.php on line 656

Warning: Cannot modify header information - headers already sent by (output started at /homepages/5/d372632784/htdocs/formation.applh.com/website/lib/plugins/popularity/action.php:11) in /homepages/5/d372632784/htdocs/formation.applh.com/website/inc/actions.php on line 187
web:php:start [Applh.com Formation]

Outils d'utilisateurs

Outils du Site


web:php:start

<html> <script type="text/javascript"> /* <[!CDATA[ */ AppLH={}; AppLH.nbh1=0; AppLH.html_show='<a class="show_start" href="#">START SLIDESHOW!</a>'; AppLH.html_banner2='<div class="show_banner2" style="position:fixed;bottom:0;left:0;width:100%;height:0%;opacity:0.8;background-color:#123456;"></div>'; AppLH.jinit=function(){ jQuery(".page h1") .each(AppLH.count_h1) ; jQuery(".page").prepend(AppLH.html_show); jQuery(".show_start").click(AppLH.show_start); }; AppLH.show_start=function(){ jQuery(".show_start, .footerinc, .stylehead, .toc, .stylefoot, .license, .secedit").hide(); jQuery("body").animate({"font-size": "150%"}); jQuery(".page h1") .animate({"margin-top": '+240'}) ; jQuery(".page").append(AppLH.html_banner2); jQuery(".show_banner2").animate({height: '10%'}); }; AppLH.count_h1=function(){ AppLH.nbh1++; var html1=jQuery(this).html(); html1=AppLH.nbh1+'. '+html1; jQuery(this).html(html1); }; if (jQuery) { jQuery(AppLH.jinit); } /* ]]> */ </script> </html> ====== PHP et MySQL ====== {{::php-med-trans.png?nolink|}} {{::logo-mysql-110x57.png?nolink|}} * Formation pour devenir développeur web * Durée: 1 semaine (~40 heures) * Bases requises: * HTML, CSS, Javascript * => technologies du navigateur web {{:serveur-web.png?nolink&400|}} * Le cours va former sur: * PHP et MySQL * => technologies du serveur web * Parties théoriques (~50%) * Exercices pratiques (~50%) * => Construction progressive d'un mini-CMS * WARNING: * Faire l'effort d'écrire le code * => apprentissage du codage * et pas seulement de faire le copier/coller :-/ ====== Définitions Rapides ====== * PHP: Hypertext Preprocessor * SQL: Structured Query Language * PHP: Langage de programmation * Open-source * Gratuit * http://php.net * Moteur Zend * SQL: Langage de gestion de Bases De Données (BDD) * MySQL: SGBD (Système de Gestion de Bases de Données) * Open-source * Gratuit ou payant (double licence) * http://dev.mysql.com/doc/ ====== Architecture LAMP ====== * Linux * Apache * MySQL * PHP * => Serveur Web standard * +60% des serveurs web * Open-source et gratuit {{:lamp-linux-apache2-mysql5-php5.png?nolink&300|}} {{:serveur-web.png?nolink&300|}} ====== Hébergement Mutualisé ====== * Création de sites internet * typiquement: Hébergement mutualisé * Serveur Web => LAMP * Linux & Apache => Administrateur Système * PHP & MySQL => Client (Vous! :-) ) * => Outils standards disponibles pour réaliser un site internet * => Beaucoup de CMS libres (Content Management System) se basent sur LAMP * NOTE: * PHP fonctionne indépendamment de MySQL * On utilisera seulement PHP pour des petits sites * On utilisera PHP et MySQL pour gérer des milliers d'informations ====== WAMP: Travailler sur PC ====== * WAMP: Windows Apache MySQL PHP * Equivalent de LAMP, mais sur PC * Permet de travailler en "local" * http://localhost/ * Téléchargement: * http://www.wampserver.com/ * Installer comme proposé * dans le dossier C:\wamp\ ou D:\wamp\ * Warning: * Ne pas installer dans le dossier C:\Program Files\ * => Problèmes de droits en écriture ====== Sites Dynamiques ====== * index.htm * page1.htm * ... * => sites statiques * sites dynamiques ??? * http://google.fr * http://lesechos.fr * http://ebay.fr * => Le contenu change quand le visiteur revient sur la même page web * Les Navigateurs proposent de garder des Favoris * => Une page web * Moins d'efforts * si le favori permet d'accéder * à des contenus mis à jours * Comparaison: * différence de structures * entre un livre et un magazine * business model: les magazines affichent de la publicité * => mettre en avant le contenu récent * => fidéliser le lecteur ====== Du site statique au site dynamique ====== * Une des raisons du Succès de PHP * Très facile de passer des pages HTML vers PHP * Il suffit de changer le nom du fichier de .htm à .php * => On obtient le même site :-) * Ensuite, on ajoute le code PHP par un système de balises <code php> <?php ?> </code> * => même principe que les balises HTML <code php exo-date.php> <div>CODE HTML I</div> <!-- début contenu dynamique --> <?php // code php echo date("d/m/Y H:i:s"); ?> <!-- fin contenu dynamique --> <div>CODE HTML II</div> </code> ====== Notes: Commenter le code ====== * A NOTER: * Il est possible de rajouter des annotations dans le code * Ces commentaires ne seront pas pris en compte comme du code actif * Les commentaires en HTML <code html> <!-- commentaire sur une ligne --> <!-- commentaire sur plusieurs lignes --> </code> * Les commentaires en PHP <code php> <?php // toute la ligne est un commentaire /* entre les balises le commentaire est sur plusieurs lignes */ ?> </code> ====== PHP: fonctions (I) ====== <code php exo-fonctions-intro.php> <?php echo("BONJOUR"); ?> <?php echo(date("H:i:s")); ?> </code> * Une fonction est une instruction qu'on donne à l'ordinateur * PHP propose un grand nombre de fonctions * très utiles * directement utilisables * http://www.php.net * Il est possible de créer ses propres fonctions * => **C'est le principal travail du développeur** :-P * une fonction est une liste d'instructions pour l'ordinateur <code php exo-fonction-abc.php> <?php function ma_fonction ($a, $b) { $resultat= $a + $b; return $resultat; } $somme = ma_fonction(12, 34); echo($somme); ?> </code> * NOTE: * Un ensemble de fonctions se groupe * dans une **bibliothèque** de fonctions * ou une **librairie** de fonctions ====== Notion de "Fonction" ====== * Notion mathématique de fonction * Y = f(X) * Calculer la valeur de Y en fonction de la valeur de X * => liste d'opérations à calculer * exemple: <code> Y = X + ((4x7)+2)x4 + ((4x7)+3)x7 Si X = 28 => Que vaut Y = ? Si X = 29 => Que vaut Y = ? </code> <code> * 4 x 7 = 28 * 28 + 2 = 30 * 30 x 4 = 120 * 4 x 7 = 28 * 28 + 3 = 31 * 31 x 7 = 217 * pour x = 28 * 28 + 120 = 148 * 148 + 217 = 365 * pour x = 29 * 29 + 120 = 149 * 148 + 217 = 366 </code> ====== Exemples Simple ====== <code php exemple-simple.php> <h2>HORLOGE</h2> <div> <?php echo date("d/m/Y H:i:s"); ?> </div> </code> <code php exemple-journal.php> <h2>JOURNAL</h2> <div> <?php echo file_get_contents(date("d-m-Y")."-news.txt"); ?> </div> </code> <code php exemple-compteur.php> <h2>COMPTEUR</h2> <div> <?php $nombre_visites = file_get_contents("visites.txt"); echo "la page a été vue ".$nombre_visites." fois"; $nombre_visites = 1 + intval($nombre_visites); file_put_contents("visites.txt", $nombre_visites); ?> </div> </code> ====== Histoire sur la programmation ====== * Evolution continue depuis 50 ans * des outils informatiques * des usages informatiques * => des programmes * => des méthodes de programmation ====== Notions de "Composition" ====== * Un ordinateur était à l'origine une machine à calculer (~1950) * Programme = liste d'opérations à calculer * ... * De + en + d'opérations à calculer * ... * => Programmes = Composition de sous-programmes * Evolution: une fonction devient aussi une opération * => Programme = liste de fonctions et d'opérations à calculer * Epoque du boom électronique (~1960): * schémas de composants électroniques * Entrées => [FONCTION] => Sortie * Production Industrielle: * Produit = Composition de plusieurs éléments * exemple: * Voiture = Moteur + Carrosserie + Options * Principe scientifique au XXè siècle * La Matière est composée de Molécules * Les Molécules sont composées d'Atomes * Les Atomes sont composés de Neutrons, Protons et Electrons * ... ====== Périphériques et Procédures ====== * A l'origine, les calculateurs impriment les résultats des programmes * Les ordinateurs se connectent avec des périphériques (disques durs, écrans, réseaux, etc...) * => Les programmes ajoutent des fonctions... * ...qui ne servent pas à effectuer un calcul, mais à contrôler les périphériques * => notion de "procédure" * => programmes pour automatisation des travaux ====== PHP: outil pour sites web dynamiques ====== * PHP est l'outil préféré pour créer des sites internet dynamiques * Il existe plein de langages de programmation (une centaine ?) * http://fr.wikipedia.org/wiki/Chronologie_des_langages_de_programmation * scripts: shell, perl, python * langages structurés: C, C++, Java, Javascript, objective-C, etc... * autres: Lisp, Lustre, Prolog, etc... * Les informaticiens sont des gens rationnels * Les ingénieurs sont des gens pratiques * => Principes communs d'un langage à l'autre * => **Chaque langage de programmation est spécialisé pour une utilisation** * PHP débute en 1995 * PHP4 sort en 2000 * PHP5 sort en 2004 * **PHP5.4 sort en Mars 2012** * http://fr.wikipedia.org/wiki/PHP:_Hypertext_Preprocessor ====== PHP: Méthode pour coder ====== * Une méthode facile pour bien coder * Ecrire en anglais (français ?) ce qu'on veut faire * Ligne par ligne * (=> Utiliser les commentaires) * Du début à la fin * Traduire les instructions en code PHP <code php eleves-tri-v1.php> <?php // Programme pour faire trier les élèves suivant différents critères // liste des élèves // liste des critères de tri // choix d'un critère de tri // test de chaque élève pour vérifier le critère de tri ?> </code> <code php eleves-tri-v2.php> <?php // Programme pour faire trier les élèves suivant différents critères // liste des élèves $liste_eleve_age = array( "jean dupont" => 1980, "marie claire" => 1981, ); // liste des critères de tri function est_ne_en_1980 ($annee) { if ($annee == 1980) return true; else return false; } function est_ne_en_1981 ($annee) { if ($annee == 1981) return true; else return false; } // choix d'un critère de tri // test de chaque élève pour vérifier le critère de tri foreach ($liste_eleve_age as $nom => $annee) { if (est_ne_en_1980($annee)) { echo $nom; } } ?> </code> ====== Langage et Syntaxe ====== * Un langage de programmation peut se comparer à une langue vivante * ex: anglais, allemand, italien, espagnol, japonais, etc... * Il y a des règles d'écriture précises * => SYNTAXE * Un Programme est une suite de caractères * caractère visible: a, b, c, ..., 0, 1, 2, etc... * caractère invisible: "espace", retour à la ligne, tabulation, ... * WARNING: * Une lettre en minuscule ou Majuscule est différente * ex: $ma_variable ou $ma_Variable => ce n'est pas la même variable! * WARNING: * Faire attention aux "blancs" * ex: espaces, retour à la ligne, tabulations * => A certains endroits, on peut en ajouter comme on veut * => A d'autres endroits, il ne doit pas y avoir de "blanc" * WARNING: * Faire attention à la ponctuation * A certains endroits, une ponctuation précise est nécessaire * WARNING: * PHP est un langage particulier * PHP permet plusieurs "niveaux" de langage * comparaison: langage écrit et langage parlé * Il y a parfois plusieurs façons d'écrire les mêmes instructions * AVANTAGE: * +facile à écrire :-) * DIFFICILE: * plus de choses à apprendre pour comprendre les programmes PHP :-( ====== PHP: Error Reporting ====== * Pendant la phase de développement * Régler le niveau d'erreur * pour détecter le plus de problème éventuels * http://fr2.php.net/manual/fr/function.error-reporting.php <code php error-reporting.php> <?php // Désactiver le rapport d'erreurs error_reporting(0); // Rapporte les erreurs d'exécution de script error_reporting(E_ERROR | E_WARNING | E_PARSE); // Rapporter les E_NOTICE peut vous aider à améliorer vos scripts // (variables non initialisées, variables mal orthographiées..) error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE); // Rapporte toutes les erreurs à part les E_NOTICE // C'est la configuration par défaut de php.ini error_reporting(E_ALL ^ E_NOTICE); // Reporte toutes les erreurs PHP (Voir l'historique des modifications) error_reporting(E_ALL); // Reporte toutes les erreurs PHP error_reporting(-1); // Même chose que error_reporting(E_ALL); ini_set('error_reporting', E_ALL); ?> </code> ====== PHP: Variables et Valeurs (I) ====== * Garde en mémoire une donnée * pour pouvoir la réutiliser plus tard * comparaison: comme un post-it ? <code php> <?php $variable = "valeur"; $nombre=10; $titre="mon site internet"; $titre_article='présentation'; ?> </code> <code php> <?php $nom="le huynh"; $prenom="long hai"; ?> </code> * syntaxe: * commence par un $ ====== Type de Données ====== * Au départ, un programme ne manipule que des nombres * entiers * décimaux * Rapidement, on a besoin de manipuler plus de types de données * Texte * Tableau * Objet ====== PHP: Opérations et Types de Données ====== * Assignation simple * $a = 5; * Opération simple * $somme = 5 + 6; * $produit = 5 * 6; * Opérations sur variables <code php> $a = 5; $b = 6; $somme = $a + $b; $produit = $a * $b; </code> * Résultat de fonction * $valeur = ma_fonction($parametre1, $parametre2); ====== PHP: Structures de contrôles (I) ====== * Les Structures de contrôles permettent de choisir différents chemins d'éxécution des instructions * Comparaison avec des routes de circulation * Comparaison avec chaine de production * if () {} * if () {} * else {} * if () {} * elseif () {} * else {} * if () {} * elseif () {} * elseif () {} * ... * else {} ====== PHP: la fonction "include" ====== * HTML définit une page web * Un site internet est un ensemble de pages web * avec des éléments communs d'une page à l'autre * => Charte graphique * => Il manque la possibilité de gérer la page en composants * la fonction **include** permet de découper un programme en plusieurs fichiers * => permet de créer un site internet plus naturellement * Un composant de la page web * => un fichier .php <code php page.php> <?php include('header.php'); ?> <?php include('content.php'); ?> <?php include('footer.php'); ?> </code> ====== Tableaux ====== * Il est possible de créer un groupe de plusieurs valeurs * => Tableau * Un Tableau est un type de données <code php> <?php $tableau=array(10, 20, 30, 40); echo $tableau[0]; // => 10 echo $tableau[1]; // => 20 echo $tableau[2]; // => 30 echo $tableau[3]; // => 40 print_r($tableau); // WARNING: LES INDEX COMMENCENT A ZERO (ET PAS A 1) for ($index=0; $index<count($tableau); $i++) { echo "$index => $valeur ...blabla... "; } foreach ($tableau as $index => $valeur) { echo "$index => $valeur ...blabla... "; } ?> </code> ====== Tableaux Associatifs ====== * Il est possible de créer un tableau indexés avec du texte * => Tableau Associatifs <code php> <?php $tableau=array( "premier" => 10, "deuxieme" => 20, "troisieme" => 30, "quatrieme" => 40 ); foreach ($tableau as $index => $valeur) { echo "$index => $valeur ...blabla... "; } // CA MARCHE AUSSI echo $tableau[0]; // => 10 echo $tableau[1]; // => 20 echo $tableau[2]; // => 30 echo $tableau[3]; // => 40 print_r($tableau); // WARNING: LES INDEX COMMENCENT A ZERO (ET PAS A 1) for ($index=0; $index<count($tableau); $i++) { echo "$index => $valeur ...blabla... "; } ?> </code> ====== PHP: Structures de Contrôles (II) ====== * for () {} * foreach () {} * while () {} * switch () {} * include () ====== PHP: Structures de Contrôles (III) ====== * require () * do {} while () A EVITER: * break * goto * ... ====== PHP: Permaliens ====== * SEO: Search Engine Optimisation * http://mon-site.com/page-1/ * http://mon-site.com/page-2/ * ... mieux que ... * http://mon-site.com/page-1.php * http://mon-site.com/page-2.php * Il est possible de dire à Apache de déléguer à PHP * les requêtes qui ne correspondent pas à un fichier * => Rewrite Rules * (en français: Règles de Ré-écriture) * Apache peut se paramètrer * => avec un fichier .htaccess * Note: * Dans Apache, le module mod_rewrite doit être activé <code htaccess htaccess.txt> </code> ====== PHP: Gestion des requêtes GET et POST ====== * $_GET * $_POST * $_REQUEST ====== PHP: Formulaire de Contact et mail ====== * Essentiel pour un site web: * Formulaire de contact * fonction: stripslashes * http://fr2.php.net/manual/fr/function.stripslashes.php * fonction: mail * http://fr2.php.net/manual/fr/function.mail.php * Gestion d'erreurs ? ====== PHP: Redirection et header ====== <code php redirection.php> <?php //... header('Location: /page-ou-aller/'); //... </code> ====== PHP: Gestion de fichier uploadé ====== * fonction: is_uploaded_file * fonction: move_uploaded_file * http://fr2.php.net/manual/fr/features.file-upload.php * http://fr2.php.net/manual/fr/features.file-upload.post-method.php ====== PHP: Programmation par Objets ====== * Autre type de données * Les Objets * Rassembler les données de manière logique * => un peu comme les tableaux associatifs * On appelle "attribut" les données associées dans une classe * Classes et Objets * Classe = Nom du groupe * Objet = Elément du groupe * opérateur **new** * $objet = new Class(); <code php> class Article [ $titre; $contenu; $tags; $auteur; $date_publication; }; $article = new Article(); $article->titre = "Mon premier article"; $article->contenu = "Ce site est en cours de construction. Merci pour votre patience."; $article->tags = "news, tests"; $article->auteur = "moi"; $article->date_publication="01/05/12"; </code> * On peut associer des fonctions à un objet * variable "$this" * $this->attribut * Cette instruction renvoie la valeur d'un attribut <code php> class Article [ $titre; $contenu; $tags; $auteur; $date_publication; function build_html () { echo "<h3>".$this->titre."</h3>"; echo "<div>".$this->contenu."</div>"; } }; $article = new Article(); $article->titre = "Mon premier article"; $article->contenu = "Ce site est en cours de construction. Merci pour votre patience."; $article->tags = "news, tests"; $article->auteur = "moi"; $article->date_publication="01/05/12"; </code> ====== PHP: Gestion de login par cookie ====== * fonction: setcookie * $_COOKIE * http://fr2.php.net/manual/fr/function.setcookie.php ====== PHP: Manipulation d'images ====== * JPG, PNG, GIF * http://fr2.php.net/manual/fr/function.imagecreatefromjpeg.php * http://fr2.php.net/manual/fr/function.imagecreatefrompng.php * http://fr2.php.net/manual/fr/function.imagecreatefromgif.php * Redimensionner une image dynamiquement ====== PHP: MIME types et header ====== * PHP peut créer toutes sortes de contenus dynamiquement * Pour HTTP, il faut déclarer quel est le type de contenu * => header * par exemple: * Content-Type: image/jpeg * Content-Type: text/html * Content-Type: text/css * Avec PHP: <code php http-header.php> <?php // ... header('Content-Type: text/css'); // ... ?> </code> ====== MySQL: SGBD et Système d'Information ====== * SGBD: Système de Gestion de Base de Données * BDD: Base De Données * SI: Système d'Information * Programme qui intègre un SGBD * => Système d'Information * Fonctionnement d'un ordinateur: * Processeur (CPU) * Mémoire Vive (RAM) * Stockage (Disque Dur) * RAM: mémoire qui s'efface quand l'ordinateur s'éteint * Disque Dur: mémoire qui reste même quand l'ordinateur s'éteint * Sur le disque dur, les données sont organisés en fichiers (et dossiers) * Les programmes sont des fichiers * Les données sont des fichiers * Attention: * Le processeur est très rapide (GHz: GigaHertz) * le processeur préfère travailler avec la RAM * => car vitesse de RAM environ 10x +rapide que le Disque Dur * => lecture et écriture * Exécution d'un programme: * Le CPU lit les instructions dans le programme et les exécute * Le système d'exploitation copie les fichiers du programme sur la RAM pour accélérer l'exécution du programme * Un programme de type "Système d'Information" utilise en plus beaucoup de données * => **Le mieux serait de charger aussi les données sur la RAM** * PROBLEME: * 1 Go de RAM coûte beaucoup plus cher que 1 Go de Disque Dur * 8 Go de RAM => ~50 euros * 1.000 Go = 1 To de Disque Externe => ~100 euros * DIFFICILE: * **Il est souvent impossible de charger toutes les données en mémoire RAM** * exemple: * Compte bancaire * Crédits * Débits * Soldes = Crédits - Débits * 1 mois * 1 an * 10 ans * etc... * Motivation des SGBD: * Programme spécialisé * dans l'optimisation de la lecture et l'écriture de données entre RAM et Disque Dur * NOTE: * Pour les grands Systèmes d'Information * => plusieurs millions de données * Il y a un poste dédié: * Administrateur de Base De Données * => métier à part entière ====== SQL: Base De Données Relationnelles ====== * BDD: Base De Données * Pour stocker des informations * Organiser les informations pour mieux les manipuler * Tableaux * Variables => Colonnes * Valeurs => Lignes |ELEVE|NOM|PRENOM| |1|DUPONT|JEAN| |2|DUPONT|JEAN| * Structure d'une base de données * Database (Base De Données) * => Table (Table) * => => Tuple (n-uplet) ====== MySQL: PhpMyAdmin ====== PhpMyAdmin est un outil écrit en PHP pour gérer les bases de données MySQL. * Gestion de BDD (Bases De Données) * Gestion de Tables * Gestion des éléments dans les tables * => Parfois Indispensable :-p * Requêtes SQL * Génération de code PHP à partir des requêtes SQL * => Utile pour insérer dans son programme PHP :-) * Export/Import de BDD sous forme de fichiers .sql * => Utile pour effectuer des sauvegardes :-) ====== SGBD: Système de Gestion ====== * CRUD * => Cycle de vie des données * Create * Read * Update * Delete ====== PhpMyAdmin: Création d'une BDD pour un CMS ====== * Création d'une base de données MiniCMS * Création d'une table ARTICLE * avec les colonnes * id * titre * contenu * date * Warning: * copier le code SQL créé par PhpMyAdmin * et l'ajouter dans un fichier texte * => install.sql ====== SQL: Primary Key ====== * Clé Primaire * => Identifiant unique pour un élément dans une table ====== SQL: Liens entre tables ====== * Foreign Key * = Clés Etrangères * => Lien vers un élément dans une autre table <code SQL> FOREIGN KEY (colonne1, colonne2, ...) REFERENCES Nom_de_la_table_etrangere(colonne1,colonne2,...) ; </code> ====== SQL: Bases du Langage (I) ====== * Langage construit à partir des mathématiques * Théorie des ensembles * Intersection * Union * ... * Pas un langage pour programmer * Quelques évolutions ont été ajoutées * mais cela reste assez limité pour la programmation * Utilisation pour effectuer des Requêtes * => Sélectionner une partie des données ====== SQL: Bases du Langage (II) ====== * CREATE * INSERT * SELECT * UPDATE * DELETE ====== SQL: CREATE ====== ====== SQL: INSERT ====== ====== SQL: SELECT ====== ====== SQL: SELECT avec tri ====== ====== SQL: SELECT sur un intervalle des réponses ====== ====== SQL: SELECT sur plusieurs tables ====== ====== SQL: UPDATE ====== ====== SQL: DELETE ====== ====== SQL: Bases du Langage (III) ====== * Ajouter des Index * Optimisation * => tableaux de hashage * Accélérer les requêtes * car plus rapide pour trouver une ligne * Mais utilise plus de mémoire * ALTER <code SQL> ALTER TABLE `test` ADD INDEX ( `ville` ); </code> ====== MySQL: Limites en Performances ====== * MySQL a un nombre limité de connexions simultanées par utilisateur * Attention: * Les hébergements mutualisés sont parfois trop limités * => options payantes pour augmenter la limite :-( * Pics de fréquentation * => Beaucoup de visiteurs en même temps sur le site * Le site devient populaire * ... mais le serveur MySQL bloque !!! * => Mauvaise surprise * :-( * => Gestion de Montée en Charge * MySQL est le maillon faible dans LAMP * => Utilisation de "cache" de données * => garder en mémoire les résultats des requêtes MySQL * => Réduire le nombre de requêtes à MySQL * Bref... * Utiliser au minimum MySQL ???


Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /homepages/5/d372632784/htdocs/formation.applh.com/website/inc/auth.php on line 656
web/php/start.txt · Dernière modification: 2012/03/28 18:01 par webmaster