250 likes | 342 Views
Présenté par COMTE Jeremy et DE LAZZARI Thomas. Sommaire. Présentation générale Include Notion de variables MySQL. 1/ a) Présentation générale. PHP est un langage dynamique qui permet de faire des opérations sur des pages HTML (pages web).
E N D
Présenté par COMTE Jeremy et DE LAZZARI Thomas
Sommaire • Présentation générale • Include • Notion de variables • MySQL
1/ a) Présentation générale PHP est un langage dynamique qui permet de faire des opérations sur des pages HTML (pages web). Contrairement à HTML, il n’existe pas d'éditeur PHP… Votre seul outil sera donc des éditeurs de texte comme emacs, bloc-note, vi, etc...
1/ b) Faire de l ’HTML Il va donc vous falloir bien comprendre les codes HTML afin de pouvoir insérer dans votre page, les codes php au bon endroit :) Frontpage, Homesite et Web Expert sont de bons programmes pour faire le rapport design-code.
1/ d) Quelques codes <br>Saut de ligne <imgsrc ="lapin.jpg" alt="Le lapin" border="0"> Insertion d’une image <ahref="cochon_dinde.html">Le cochon d’inde</a> Un lien hypertexte <tableborder="1"bordercolor="#FF0000"> <tr> <td>LAPIN</td> <td>le lapin court dans la forêt</td> </tr></table>
2/ 1) Premiers pas: Include home.php <tablewidth="900"border="0"> <tr> <tdwidth="200" valign="top" bgcolor="#FF0000"> <? include('menu_gauche.php'); ?> </td> <tdwidth="700" valign="top" bgcolor="#00FF00"> <? include('home.php'); ?> </td></tr></table> menu_gauche.php
2/ b) Applications des bases Quels sont les codes php et html qui structurent ce site ? Combien faut-il de page pour faire ce site en utilisant include( ) ?
3/ a) Notion de base Comme en C, on peut utiliser des variables en php! Voici un exemple tout bête: <? $nom = "Martin"; echo "Mon nom est $nom"; ?> Mon nom est Martin <html><body><font size="2" face="Arial">Le texte en HTML</font><?print("<font size=\"2\" face=\"Arial\"> et celui en PHP.</font>");?> On peu écrire la même chose en php et en html. Le texte en HTML et celui en PHP.
3/ b) Récupérer des variables Il est possible en php de récupérer les variables d’un formulaire. <html><body><formmethod="post" action="display.php">Couleur:<input type="text" name="couleur" size="20"><br>Vitesse:<input type="text" name="vitesse" size="20"><br><input type="submit" value="OK"></form></body></html>
3/ C) Display.php display.php est la page sur laquelle les variables $couleur et $vitesse sont envoyées. <?print("<center>Le lapin $couleur court dans le jardin à une vitesse de $vitesse</center>");?> Le lapin blanc court dans le jardin à une vitesse de 33 Km/h
3/ d) Verifier les variables Un autre exemple <html><body><formmethod="post" action="verif.php">Titre:<input type="text" name="titre" size="20"><br>URL:<input type="text" name="url" size="20" value="http://"><br><input type="submit" value="OK"></form></body></html>
3/ e) Verif.php Voici le code à utiliser dans verif.php <?if(empty($titre)){print("<center>Le '<b>Titre</b>' est vide !</center>");exit();}// vérification du début de l'url$verif_url=strtolower($url);$verif_url=substr("$verif_url",0,7);// on verifie les 7 premiers caractèresif($verif_url!="http://"){print("L'URL doit commencée par<b>http://</b>");exit();}else{print("$titre :<a href=\"$url\">$url</a>");}?> Resultat Erreur n°1:Le 'Titre' est vide !Erreur n°2:L'URL doit commencer par http:// Si pas d'erreur : Titre : URL
4/ a) Base de données MySQL En php, il est possible de stocker les variables saisies sur un formulaire dans une base de données. MySQL est le nom du type de base de données le plus utilisé sur internet. MySQL Page de lecture Formulaire
4/ b) Créer sa premiere table SQL Accèder à votre base de données MySQL, via l’interface phpMyAdmin CREATE TABLEclients(idINT not null AUTO_INCREMENT,prenomVARCHAR (50) not null ,nomVARCHAR (50) not null ,ne_leDATE not null ,villeVARCHAR (90) not null ,enfantsINT not null ,PRIMARY KEY (id)) Cette commande crée une table nommée 'clients' comportant les champs ci-dessous:
4/ d) Les champs de la table L’ID permet de classer nos enregistrements, l'auto-increment se charge d'affecter un nouveau numéro aux nouveaux enregistrements. CREATE TABLEclients(idINT not null AUTO_INCREMENT,prenomVARCHAR (50) not null ,nomVARCHAR (50) not null ,ne_leDATE not null ,villeVARCHAR (90) not null ,enfantsINT not null ,PRIMARY KEY (id)) Type des champs: INT: Entier de 0 à 4294967295 (unsigned) BIGINT: Entier de 0 à 18446744073709551615 (unsigned) CHAR: Chaîne de caractère de taille fixe, va de 1 à 255 caractères VARCHAR: Chaîne de caractère de taille variable, va de 1 à 255 caractères LONGTEXT: Un objet BLOB ou TEXT, longueur maximale de 4294967295 ETC… (voir internet)
4/ e) Interroger une table MySQL Code minimum pour interroger une table: <? $db = mysql_connect( '@serveur', 'login', 'password');mysql_select_db('nom_de_la_base',$db);$req = mysql_query('SELECT * FROM clients');$res = mysql_numrows($req);echo 'Il y a '.$res.' enregistrement(s) dans la table Clients.';mysql_close($db);?> Donne à l’écran: « Il y a 5 enregistrement(s) dans la table Clients. » NB: La fonction Mysql_query() permet de passer une requête SQL vers la base de données, c'est évidement l'un des attraits intéressant de PHP (notez que nous initialisons au passage la variable $reqqui contient la requête).
4/ f) Insertion de données via phpMyAdmin Creons une table famille_tbl: CREATE TABLE famille_tbl ( id int(11) NOT NULL auto_increment, nom varchar(255) NOT NULL, prenom varchar(255) NOT NULL, statut varchar(255) NOT NULL, date date DEFAULT '0000-00-00' NOT NULL, PRIMARY KEY (id), KEY id (id), UNIQUE id_2 (id) ); Rentrons y des données: INSERT INTO famille_tbl VALUES( '', 'Dupond', 'Grégoire', 'Grand-père', '1932-05-17');INSERT INTO famille_tbl VALUES( '', 'Dupond', 'Germaine', 'Grand-mère', '1939-02-15');INSERT INTO famille_tbl VALUES( '', 'Dupond', 'Gérard', 'Père', '1959-12-22');INSERT INTO famille_tbl VALUES( '', 'Dupond', 'Marie', 'Mère', '1961-03-02');INSERT INTO famille_tbl VALUES( '', 'Dupond', 'Julien', 'Fils', '1985-05-17');INSERT INTO famille_tbl VALUES( '', 'Dupond', 'Manon', 'Fille', '1990-11-29');
4/ g) Afficher les données sur une page <? // on se connecte à MySQL$db = mysql_connect( '@serveur', 'login', 'password');// on séléctionne la basemysql_select_db('nom_de_la_base',$db); // on créer la requete SQL et on l'envoie$sql = 'SELECT nom,prenom,statut,date FROM famille_tbl'; // on envoie la requete $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); // on fait une boucle qui va faire un tour pour chaque enregistrementswhile($data = mysql_fetch_array($req)) { // on affiche les informations de l'enregistrements en coursecho '<b>'.$data['nom'].' '.$data['prenom'].'</b> ('.$data['statut'].')'; echo ' <i>date de naissance : '.$data['date'].'</i><br>'; } // on ferme la connexion à mysqlmysql_close(); ?>
4/ g) Et cela donne Dupond Grégoire (Grand-père), date de naissance : 1932-05-17Dupond Germaine (Grand-mère), date de naissance : 1939-02-15Dupond Gérard (Père), date de naissance : 1959-12-22Dupond Marie (Mère), date de naissance : 1961-03-02Dupond Julien (Fils), date de naissance : 1985-05-17Dupond Manon (Fille), date de naissance : 1990-11-29 Le résultat aurait été classé par ordre alphabétique des prénoms si on avait mis dans le code précèdent la commande: $sql = 'SELECT nom,prenom,statut,date FROM famille_tbl ORDER BY prenom'; Afficher que les prénoms commençant par M: $sql = "SELECT nom,prenom,statut,date FROM famille_tbl WHERE prenom LIKE 'M%'";
4/ h) Alimenter une table via formulaire html On fait un formulaire: <html> <form method="POST" action="add.php3"> <center> <input type="text" name="nom" size="20" value="nom" maxlength="35"> <input type="text" name="prenom" size="20" value="prenom" maxlength="35"><br> <input type="text" name="email" size="20" value="email" maxlength="70"> <input type="text" name="url" size="20" value="url du site" maxlength="255"><br> <input type="submit" value="Envoyer" name="envoyer"> </center> </form> </html>
4/ h) Alimenter une table via formulaire html Comme vous le savez maintenant la variable de chacun des champs reprend le "name" précédé du signe dollar ($), dans notre cas voici les 4 variables :$nom , $prenom, $email, et $url. Code de add.php3: <? $db = mysql_connect( '@serveur', 'login', 'password'); // connexion à la basemysql_select_db('nom_de_la_base',$db); // sélection de la base// on ecris la requete sql $sql = "INSERT INTO infos_tbl VALUES('','$nom','$prenom','$email','$url')"; // on insère les informations du formulaire dans la tablemysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); // on affiche le résultat pour le visiteurecho 'Vos infos on été ajoutées.'; mysql_close(); // on ferme la connexion?>
4/ h) Lire les données insérées <html> <body> <? $db = mysql_connect( '@serveur', 'login', 'password'); mysql_select_db('nom_de_la_base',$db); $sql = "SELECT * FROM infos_tbl"; $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); while ($val = mysql_fetch_array($req)) { $nom = $val["nom"]; $prenom = $val["prenom"]; $email = $val["email"]; $url = $val["url"]; // attention on ne ferme pas la boucle mais juste le code php pour dire que ce qui suit est de l’html… ces codes rentrent donc dans la boucle. ?> Nom: <? echo $nom; ?><br> Prenom: <? echo $prenom; ?><br> Email: <? echo $email; ?><br> URL: <? echo $url; ?><br> <? } // on ferme la boucle ici. mysql_close(); ?> </body></html>
Quelques liens www.phpdebutant.com: Exos, exemples, etc… Très détaillé et très simple d’accès! www.php.net: Site officiel (la plupart des pages sont en anglais)