APP-TSWD Apprentissage Par Problèmes Techniques des Sites Web Dynamiques Licence Professionnelle FNEPI Valérie Bellynck, Benjamin Brichet-Billet, Mazen Mahrous Grenoble INP – Pagora 10 novembre 2014 Cours en Réponse à questions, n° 4
Groupe : ? Autres groupes ? ? Profs MySQL ? PhpMyAdmin ? Récupérer les requêtes MySQL dans PhpMyAdmin ? Soutenances formatives Expliquer des programmes types PHP le programme principal des actions d’un formulaire la boucle type des traitements d’une ressource (pointeur sur.csv, pointeur sur une ressource de traitement de données mySQL…) Questions reçues
MySQL - API
MAMP-PhpMyAdmin
PhpMyAdmin - CREATE
PhpMyAdmin - SELECT
PhpMyAdmin – formulaire Insertion
PhpMyAdmin - INSERT
PhpMyAdmin – formulaire Modif
PhpMyAdmin - UPDATE
PhpMyAdmin - DELETE
PhpMyAdmin – Formulaire SQL
Manuel officiel mySQL ↪ voir
SHOW COLUMNS FROM [ma_table] versus SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE `TABLE_NAME` = '[ma_table]'
SHOW COLUMNS FROM [ma_table] versus SELECT `COLUMN_TYPE` FROM INFORMATION_SCHEMA.COLUMNS WHERE `TABLE_NAME` = '[ma_table]’ AND `COLUMN_TYPE` LIKE 'enum%'
Algorithmique : 2 programmes typiques
Ossature/maquette d’une page Web (= « template ») ↪ voir
Les fonctions PHP require() / include() / require_once() / include_once()
Ossature/maquette d’une page Web (= « template ») ↪ voir
Ossature/maquette d’une page Web (= « template ») ↪ voir
Usage des constantes PHP Définit une constante pour tout le script PHP exécuté !! non modifiable Certaines constantes sont pré-définies comme DIRECTORY_SEPARATOR, __FILE__... ↪ voir et ↪ voir Pour les utiliser, juste pas de quotes à mettre
Aide pour déboguer : Affichage de traces
constante prédéfinie faisant partie des « constantes magiques » __FILE__, __DIR__... ↪ voir basename() : fonction PHP qui extrait le nom du fichier dans un chemin
Boucle de traitement d’une ressource 1°) Initialisation de la tête de lecture 2°) Tant que la tête n’est pas dehors, lire un « élément » traiter l’élément - fin du « tant que » 3°) Libération de la mémoire utilisée par la tête de lecture
Boucle de traitement d’une ressource 1°) Initialisation de la tête de lecture 2°) Tant que la tête n’est pas dehors, lire un « élément » traiter l’élément - fin du « tant que » 3°) Libération de la mémoire utilisée par la tête de lecture Exemple : lire les éléments d’un dossier et générer une liste de liens
Boucle de traitement d’une ressource Exemple : lire les lignes d’un fichier.csv et afficher ses valeurs ligne par ligne 1°) Initialisation de la tête de lecture 2°) Tant que la tête n’est pas dehors, lire un « élément » traiter l’élément - fin du « tant que » 3°) Libération de la mémoire utilisée par la tête de lecture
Boucle de traitement d’une ressource Exemple : lire les enregistrements résultants d’une requête mySQL et les stocker dans un tableau PHP 1°) Initialisation de la tête de lecture 2°) Tant que la tête n’est pas dehors, lire un « élément » traiter l’élément - fin du « tant que » 3°) Libération de la mémoire utilisée par la tête de lecture En sortie de fonction, $table contient une table PHP qui correspond aux enregistrements trouvés par la requête mySQL
Boucle de traitement d’une ressource Exemple : lire les enregistrements résultants d’une requête mySQL et les stocker dans un tableau PHP En sortie de fonction, $table contient une table PHP qui correspond aux enregistrements trouvés par la requête mySQL La fonction définie, gest_lasts($nb), récupère les $nb derniers enregistrements de la table dont le nom a été spécifié dans la constante TABLE précédemment
Séquencement des actions d’un formulaire : le « Contrôle » 1°) gros « switch » qui séquence les affichages et les actions ↪ voir identique à
Séquencement des actions d’un formulaire : les « vues » 1°) des « include »s pour les formulaires liés ↪ voir
Séquencement des actions d’un formulaire : le « modèle » 2°) fonctions pour réaliser les actions ↪ voir insertion des fonctions qui contiennent les requêtes mySQL insertion du fichier de connexion entre les 2 serveurs appel des fonctions qui font l’action avec la base de données
Séquencement des actions d’un formulaire 3°) ajustement du « Contrôle » ↪ voir appel des fonctions qui font l’action avec la base de données … reste à faire ici
4°) Codage du « Modèle » dans un fichier externe regroupant les fonctions pour réaliser les actions ↪ voir On veut que PHP transmette la requête d’insertion à MySQL INSERT INTO … ( …, … …) VALUES ( …, … …) ; On veut que PHP transmette la requête de mise à jour à MySQL UPDATE … SET … = … AND … = … WHERE `id` = … ;
Architecture MVC Modèle – Contrôle - Vues Intérêt de l’architecture MCV : Si on veut changer de « support » pour mémoriser les données, on a seulement à modifier le contenu des fonctions qui réalisent les actions Toutes les interfaces Homme-Machine (IHM) d’aujourd’hui sont fait ainsi De nombreux frameworks / environnements de développement (EDI / IDE) imposent ce type d’architecture passage au développement pour les nouveaux appareils (Android / iOS) EDI = environnement de développement intégré IDE = integrated development environment IHM = interface Homme-Machine Framework = ensemble cohérent de composants logiciels organisés pour structurer l’architecture des programmes ↪ voir et
Fonctions et classes PHP pour MySQL ↪ voir Plusieurs bibliothèques (ou familles de fonctions) permettent à PHP de communiquer avec MySQL. Par exemple : mysql_connect() est « déprécié aujourd’hui » mysqli_connect() ne se connecte qu’à MySQL est orienté objet MDB2::connect() est orienté objet, permet de travailler avec MySQL ou postgre-SQL ou… peut nécessiter une installation spécifique pour PHP new PDO() est orienté objet permet de travailler avec MySQL ou postgre-SQL ou… est fourni directement avec les dernières version de PHP
Les objets dans PHP (4 et 5)
Objet : exemple du point (x,y) 2 variables séparées (« scalaires ») : float x, float y; Des structures de données : array(x,y) struct { float x, float y } struct { float x, float y, string nom } + des fonctions comme - définir un point - déplacer un point - supprimer un point Une structure pour des valeurs ET des « méthodes » + héritage La structure n’est pas la valeur ➙ Le constructeur réserve la mémoire et initialise ➙ Le destructeur libère la mémoire ➙ Un véhicule est un engin à roues permettant de se déplacer ➙ Une voiture est un véhicule à 4 roues … struct point { float x; float y; string nom; } var p = (point) (2,3,’A’); pas en PHP
Utilisation des objets dans PHP
Définition d’une classe et Instance
QCM inspiré des questions des fiches de TD de tiprof