Initiation PHP - PowerPoint PPT Presentation

1 / 91
About This Presentation
Title:

Initiation PHP

Description:

Perl qui ne peut tre ins rer dans du code HTML. Javascript qui ... Affectation de la valeur de l'expression de droite dans la variable de gauche. ... – PowerPoint PPT presentation

Number of Views:31
Avg rating:3.0/5.0
Slides: 92
Provided by: dom1121
Category:

less

Transcript and Presenter's Notes

Title: Initiation PHP


1
Initiation à PHP
2
Plan
  • Introduction à PHP
  • Structure dun script PHP
  • Les Variables et les constantes
  • Les Types
  • Les Opérateurs
  • Les Structures de contrôle

3
Introduction à PHP
  • PHP Hypertext Preprocessor
  • Langage de script HTML interprété coté serveur
  • ? Perl qui ne peut être insérer dans du code HTML
  • ? Javascript qui sexécute coté client

4
Architecture dun site web avec PHP
Internet
Serveur Web
Programme Serveur
requêtes
HTML
HTML
Docs html
Scripts PHP
Module PHP
Navigateur (programme client)
5
Attention!
  • Un fichier HTML contenant un script PHP doit
    avoir lextension ".php".
  • Un fichier PHP est toujours interprété au niveau
    du serveur.
  • Pour visualiser le script dans un navigateur il
    faut renommer le fichier avec lextension ".phps".

6
Fichier PHP (coté serveur)
  • lthtmlgt
  • ltheadgt
  • lttitlegtExemplelt/titlegt
  • lt/headgt
  • ltbodygt
  • lt?php
  • echo ("Bonjour, je suis un script PHP!")
  • ?gt
  • lt/bodygt
  • lt/htmlgt

7
Fichier PHP (coté client)
  • lthtmlgt
  • ltheadgt
  • lttitlegtExemplelt/titlegt
  • lt/headgt
  • ltbodygt
  • Bonjour, je suis un script PHP!
  • lt/bodygt
  • lt/htmlgt

8
Structure dun script PHP
  • Délimité par les balises déchappement lt?php et
    ?gt
  • Composé dinstructions terminées par un
    point-virgule
  • Bloc dinstructions délimité par des accolades
  • Associé à des commentaires
  • // Commentaires de fin de ligne
  • / Commentaires
  • longs /

9
Variables PHP
  • En PHP, les variables sont représentées par un
    signe dollar "" suivi du nom de la variable. Le
    nom est sensible à la casse (ie x ! X).
  • Un nom de variable valide doit commencer par une
    lettre ou un souligné (_), suivi de lettres,
    chiffres ou soulignés (une lettre peut être une
    des lettres minuscules (a à z) ou majuscules (A à
    Z), et les caractères ASCII de 127 à 255).

10
Exemple
  • lt?php
  • var "Jean"
  • Var "Paul"
  • echo ("var, Var") // affiche "Jean, Paul"
  • 4site 'pas encore' // invalide commence
  • // par un nombre
  • _4site 'pas encore' // valide commence
  • // par un souligné
  • maïs 'jaune' // valide 'ï' est ASCII 239.
  • ?gt

11
Variables prédéfinies
  • Il en existe trop pour les lister SERVER_NAME,
    REMOTE_ADDR,
  • Pour la liste complète il faut utiliser la
    fonction phpinfo()
  • lt?php
  • phpinfo()
  • ?gt

12
Portée des variables
  • La portée d'une variable dépend du contexte dans
    lequel la variable est définie. Le plus souvent
    elle concerne la totalité du script php.
    Cependant
  • lt?php
  • a 1 / portée globale /
  • function test()
  • echo a / portée locale /
  • test() / naffichera rien car utilise la
    variable locale a /
  • ?gt

13
Les constantes
  • Une constante est un identifiant (un nom) qui
    représente une valeur simple.
  • Elle ne peuvent jamais être modifiée ou détruite
    durant l'exécution du script.
  • Vous pouvez définir une constante en utilisant la
    fonction define().
  • Seuls les types de données scalaires peuvent être
    placés dans une constante booléen, entier,
    double et chaîne de caractères.

14
Exemple
  • lt?php
  • define("CONSTANTE", "Bonjour le monde.")
  • echo CONSTANTE // affiche "Bonjour le monde."
  • echo Constante / affiche "Constante" et une
    note dexecution (message derreur). /
  • defined(CONSTANTE) // retourne TRUE
  • // pour afficher les constantes déjà défini
  • print_r(get_defined_constants())
  • ?gt

15
Types PHP
  • booléen TRUE FALSE (i.e. 0,"","0") 
  • entier
  • flottant
  • chaîne de caractères (entre " ou ')
  • tableau

16
Les chaînes de caractères
  • lt?php
  • chaine1 "une suite de caractères"
  • chaine2 'une autre'
  • / les guillemets permettent linterpolation de
    variables /
  • ch3 " chaine\n"
  • ch4 "une dernière ch3"
  • echo(ch4)
  • // affiche "une dernier chaine"
  • // le backslash \ est le caractère déchappement
  • ?gt

17
Lindexation des tableaux
  • lt?php
  • tab1 array(1,2,3,4) // automatique
  • tab2 array('couleur' gt 'rouge',
  • 'gout' gt 'sucre', // associative
  • 'forme' gt 'rond',
  • 'nom' gt 'pomme')
  • echo (tab10) // affiche 1
  • echo (tab2'gout') // affiche sucre
  • echo (tab20 // correct! -gt rouge
  • ?gt

18
Opérateurs arithmétiques
19
Opérateurs de comparaison
20
Opérateurs booléens
21
Opérateurs incrémentaux
  • Fonctionne aussi sur les caractères et les
    chaînes!!

22
Opérateurs dassignation et autres
23
Structures de contrôle
  • if/ if .. else / if .. elseif
  • while / do .. while
  • for / foreach
  • switch
  • break / continue

24
Exemples (1)
  • lt?php
  • if (i 0)
  • print "i vaut 0"
  • elseif (i 1)
  • print "i vaut 1"
  • elseif (i 2)
  • print "i vaut 2"
  • else
  • print "i différent"
  • ?gt
  • lt?php
  • switch (i)
  • case 0print "i vaut 0"
  • break
  • case 1
  • print "i vaut 1"break
  • case 2
  • print "i vaut 2"break
  • default
  • print "i différent"
  • ?gt

25
Exemples (2)
  • lt?php
  • / exemple 1 /
  • for(i1ilt10i)
  • print i
  • // fin du for
  • / exemple 2 /
  • for (i1i)
  • if (i gt 10)
  • break
  • // fin du if
  • print i
  • / exemple 3 /
  • i 1
  • for ()
  • if (i gt 10) break
  • print i
  • i
  • / exemple 4 /
  • for (i 1 i lt 10
  • print i, i)
  • ?gt

26
Exemples (3)
  • lt?php
  • tabarray("a","b","c")
  • foreach(tab as val)
  • echo("valeurval\n")
  • for(i0iltsizeof(tab)i)
  • echo("valeurtabi\n")
  • ?gt
  • Affiche
  • valeur a
  • valeur b
  • valeur c

27
Exemples (4)
  • lt?php tab"a","b","c"
  • while (list(cle, val)each(tab))
  • echo("Clécle ")
  • echo("Valeurval\n")
  • reset(tab) / replace le pointeur interne en
    tête du tableau /
  • foreach(tab as cle gt val)
  • echo("Clécle Valeurval\n")
  • ?gt
  • Affiche
  • Clé0 Valeura
  • Clé1 Valeurb
  • Clé2 Valeurc

28
Fonctions, Formulaires et Fichiers
29
Plan
  • Les Fonctions
  • Gestion de Formulaires en PHP
  • Les Fichiers

30
Les Fonctions en PHP (1)
  • Une fonction peut être définie en utilisant la
    syntaxe suivante

lt?php function nom_fonction (param_1, ,
param_n) instruction_1 instruction_m r
eturn resultat ?gt
31
Les Fonctions en PHP (2)
  • function mot clé annonçant la définition dune
    fonction,
  • Nom_fonction() nom de la fonction, servira à
    son appel,
  • return mot clé permettant dassocier un
    résultat à la fonction.

32
Exemples
  • function alea()
  • choix rand(0,100)
  • return choix
  • function aleaN(Nombre)
  • choix rand(0,Nombre)
  • return choix

// Utilisation valalea alea() echo
valalea echo alea() max 20 valalea
aleaN(max) echo valeuralea echo aleaN(50)
33
Fonctions standards
  • PHP met à notre disposition un très grand nombre
    de fonctions http//www.php.net/
  • On peut également trouver des bibliothèques de
    fonctions utilitaires dans des
  • sites comme http//www.asp-php.net/asphp2/fr/
  • http//www.phpdebutant.com/
  • Utilisez-les!

34
Fonctions sur les chaînes
35
Fonctions sur les tableaux
36
Gestion de formulaires en PHP
  • Les variables denvironnement lt?php phpinfo()
    ?gt
  • QUERY STRING récupère lensemble des
    informations transmises depuis un formulaire
    (visibles au niveau du navigateur en utilisant la
    méthode GET)
  • REQUEST_METHOD GET ou POST
  • HTTP_POST_VARS ou HTTP_GET_VARS tableau
    associatif global contenant les données transmises

37
Gestion des champs textuels (1)
  • Les variables externes http//users.info.unicaen
    .fr/fournier/PHP/SRC2/src_form1html
  • ltform action"src_form1.php" method"get"gt
  • ltbgtNom lt/bgtltbr /gt
  • ltinput type"text" name"nom" size10 /gt
  • ltbgt Prénom lt/bgtltbr /gt
  • ltinput type"text" name"prenom" size10 /gt
  • ltinput type"submit" name"envoi"
  • value"clic"gt
  • lt/formgt

38
Gestion des champs textuels (2)
  • lthtmlgt
  • ltbody bgcolor"FFFFFF"gt
  • lt?php
  • echo("QUERY_STRING QUERY_STRING ltbr /gt\n")
  • echo("Nomnom ltbr /gt\n")
  • echo("Prenom prenom ltbr
  • /gt \n")
  • ?gt
  • lt/bodygt
  • lt/htmlgt

1er résultat QUERY_STRING nomprenomenregistr
ementEnvoyer Nom Prenom
39
Gestion de liste de sélection (1)
  • ltform action"src_form2.php" method"get"gt
  • Nom ltinput type"text" name"nom" size10 /gt
  • Ville ltselect size"3" name"ville"gt
  • ltoption value"Amiens"gt Amiens
  • ltoption value"Bordeaux"gt Bordeaux
  • ltoption value"Caen"gt Caen
  • ltoption value"Lille"gt Lille
  • lt/selectgt
  • ltinput type"submit" name"enregistrement"
    value"Envoyer"gt ltbr /gt
  • ltinput type"reset" name"annuler"gt
  • lt/formgt

40
Gestion de liste de sélection (2)
  • lthtmlgt
  • ltbody bgcolor"FFFFFF"gt
  • lth1gt2e résultatlt/h1gt
  • lt?php
  • echo("Nom nom ltbr /gt \n")
  • echo("Ville ville ltbr /gt \n")
  • ?gt
  • lt/bodygtlt/htmlgt

2e résultat Nom toto Ville Amiens
41
Gestion de bouton radio (1)
  • ltform action"src_form3.php" method"get"gt
  • Nom ltinput type"text" name"nom" size10 /gt
  • Département ltbr /gt
  • Calvados ltinput type"radio" name"dpt"
  • value"14"gt ltbr /gt
  • Manche ltinput type"radio" name"dpt"
  • value"50"gt ltbr /gt
  • Orne ltinput type"radio" name"dpt"
  • value"61"gt ltbr /gt
  • ltinput type"submit" name"enregistrement"
    value"Envoyer"gt ltbr /gt
  • lt/formgt

42
Gestion de bouton radio (2)
  • lt?php
  • echo("Nom nom ltbr /gt \n")
  • echo("Département dpt ltbr /gt \n")
  • ?gt
  • 3e résultat
  • Nom Gégé
  • Département 50

43
Gestion des choix multiples (1)
  • ltform action"src_form4.php" method"get"gt
  • Nom ltinput type"text" name"personom"
    size10 /gt
  • Cadeaux ltbr /gt
  • Livre ltinput type"checkbox" name"cadeaux"
  • value"livre" checked"checked"gt
  • Tee-shirt ltinput type"checkbox"
    name"cadeaux"
  • value"tee-shirt"gt
  • Sac ltinput type"checkbox" name"cadeaux"
  • value"sac"gt
  • Sweet ltinput type"checkbox" name"cadeaux"
  • value"sweet"gt
  • ltinput type"submit" name"enregistrement"
    value"Envoyer"gt
  • lt/formgt

44
Gestion des choix multiples (2)
  • lt?php
  • echo("Nompersonom ltbr /gt")
  • if (is_array(cadeaux))
  • echo("Liste des cadeauxltulgt")
  • foreach(cadeaux as elem)
  • echo("ltligt elem \n")
  • echo("lt/ulgt\n")
  • ?gt
  • Nom Toto
  • Cadeaux
  • Livre
  • Sac

45
Sélections multiples (1)
  • ltform action"src_form5.php" method"get"gt
  • Nom ltinput type"text" name"nom" size10 /gt
    Musique ltselect multiple size"3"
  • name"musique"gt
  • ltoption value"Electro"gt Electro
  • ltoption value"Indus"gt Indus
  • ltoption value"Pop"gt Pop
  • ltoption value"Rap"gt Rap
  • ltoption value"Rock"gt Rock
  • lt/selectgt
  • ltinput type"submit" name"enregistrement"
    value"Envoyer"gt
  • lt/formgt

46
Sélections multiples (2)
  • Gestion identique aux checkbox.
  • Si absence de vérification du tableau
  • Warning Invalid argument supplied for foreach()
    in /users/doct/fournier/public_html/PHP/SRC2/src_f
    orm4_erreur.php on line 18

47
Gestion de champs obligatoires
  • Objectif valider un formulaire uniquement si un
    minimum dinformations est renseigné.
  • Comment
  • Vérifier létat des éléments obligatoires avant
    de traiter les informations.
  • Renvoyer le formulaire en cas déchec
  • Récupérer les informations déjà renseignées

48
Séquence de gestion des erreurs
Script dorientation
Formulaire HTML
Échec (message)
Vérification des données
succès
Traitement des données
Résultat
49
Distinction des champs obligatoires
  • Regrouper les éléments obligatoires dans un
    tableau associatif commun
  • ltform action"script.php" method"get"gt
  • Nom () ltinput type"text"
  • name"obligatoiresnom" size10 /gt
  • Prénom ltinput type"text"
  • name"optionsprenom" size10 /gt
  • lt/formgt
  • ltpgt() champs obligatoires lt/pgt

50
Script dorientation
  • lt?php
  • if (!QUERY_STRING)
  • include("formulaire.php")
  • else / appel depuis un formulaire /
  • if (valides(obligatoire))
  • include("traite_formulaire.php")
  • else include("formulaire.php")
  • / valides est une fonction qui doit être
    définie dans le script /
  • ?gt

51
Récupérer les infos déjà saisies
  • Directement dans le formulaire
  • Attention le formulaire devient un script php!
  • ltform action"script.php" method"get"gt
  • Nom () ltinput type"text"
  • name"obligatoiresnom" 
  • lt?php
  • if(is_array(obligatoire) obligatoiresnom)
  • echo("value\"obligatoiresnom\" ")
  • ?gt
  • size10 /gt
  • lt/formgt

52
Les Fichiers
  • Comment y accéder ?
  • Par le nom relatif "../../images/logo.gif"
  • Par le nom absolu "/users/src2/dupont/file.txt"
  • Par une URL "http//www.site.org/index.html"
  • Pourquoi faire ?
  • Charger des bibliothèque de fonctions
  • Inclure un élément récurrent dun site web
  • Créer des éléments dynamiques dans une page

53
La fonction require
  • La commande require(string nom_fichier) se
    remplace elle-même par le contenu du fichier.
  • Elle est toujours effectuée même dans un if
  • Utile pour charger en mémoire un script
    contenant des fonctions usuelles.

54
La fonction include
  • La fonction include(string nom_fichier) inclus et
    évalue le fichier spécifié en argument.
  • Contrairement à require, nest pas
    systéma-tiquement effectuée.
  • Utile pour insérer un en-tête ou pied de page
    récurrent dans un site web, pour exécuter un
    script selon certaines conditions,

55
Ouvrir un fichier
  • Plusieurs mode douverture existent lecture,
    écriture, lecture/écriture,
  • int fopen(string nom_fichier, string mode)
  • Si le nom commence par "http" réalise une
    connexion HTTP
  • Retourne un pointeur de fichier ou FALSE en cas
    déchec.
  • Modes possibles 'r', 'w', 'a', 'w', 'a'

56
Lire dans un fichier
  • string fgets ( int fp, int length)
  • retourne la chaîne lue jusqu'à la longueur
    length - 1 octet, ou bien la fin du fichier, ou
    encore un retour chariot (le premier des trois
    qui sera rencontré).
  • array file ( string filename , int
    use_include_path)
  • retourne le fichier dans un tableau. Chaque
    élément du tableau correspond à une ligne du
    fichier, et les retour-chariots sont placés en
    fin de ligne.

57
Écrire dans un fichier
  • int fwrite ( int fp, string string , int
    length)
  • écrit le contenu de la chaîne string dans le
    fichier pointé par fp. Si la longueur length est
    fournie, l'écriture s'arrêtera après length
    octets, ou à la fin de la chaîne (le premier des
    deux).
  • int fputs ( int fp, string str , int length)
  • idem

58
Fermer un fichier
  • bool fclose ( resource fp)
  • fclose() ferme le fichier fp.
  • Retourne TRUE en cas de succès, et FALSE en cas
    d'échec.
  • Le pointeur de fichier doit être valide, et avoir
    été correctement ouvert par fopen()

59
Exemple
  • lt?php
  • fpfopen("fichier.txt","r")
  • if(! fp) // vérifie que le pointeur de fichier
    est valide
  • echo("Impossible douvrir fichier.txt")
  • else
  • while (!feof(fp)) // répète jusquà la fin de
    fichier
  • ligne fgets(fp, 256) // lit une ligne
  • ligne rtrim(ligne) // enlève le retour
    chariot
  • echo("ligneltbrgt")
  • fclose(fp)
  • ?gt

60
Interface PHP /MySQLRetour sur les fonctions
61
Plan
  • PHP et les SGBD
  • Se connecter à MySQL
  • Exécuter une requête
  • Traiter les erreurs
  • Exploiter les résultats dune requête
  • Fermer la connexion
  • Retour sur les fonctions

62
Accès aux Bases de Données
  • MySQL, PostgreSQL, Sybase, mSQL, Oracle, ODBC,
    etc.
  • Méthodes très similaires quelque soit le SGBD
    interrogé.
  • En général, il faut suivre la séquence
  • Connexion
  • Requête
  • Exploitation des résultats
  • Fermeture de la connexion

63
Connexion à un serveur MySQL
  • Paramètres de connexion
  • Nom ou adresse IP du serveur
  • Port découte du serveur
  • Nom dun utilisateur répertorié
  • Mot de passe de cet utilisateur
  • Fonction
  • int mysql_connect(string serveur port,string
    utilisateur,string secret)
  • Etablir une connexion avec serveur (MySQL), pour
    un compte utilisateur, et de mot de passe secret.
  • Renvoie une valeur  (entier positif) qui peut
    être utilisée ensuite pour dialoguer avec le
    serveur.
  • int mysql_pconnect(idem)
  • établit une connexion permanente

64
Exemple
  • lt?php
  • Host" mysqlhost.info.unicaen.fr " // nom du
    serveur
  • User fournier"//nom de l'utilisateur de la BD
  • Passwd"toto" // mot de passe de l'utilisateur
  • BD fournier" // nom de la base de données
  • connexion mysql_connect("Host","User","Passwd
    ")
  • if (connexion)
  • print "ltpgtConnexion établie !lt/pgt"
  • else
  • print "ltpgtErreur lors de la connexion ...lt/pgt"
  • exit
  • ?gt

65
Sélectionner une BD
  • bool mysql_select_db(string base ,int
    identifiant de connexion)
  • Permet de se placer dans une base de données.
  • Cest léquivalent de la commande USE base sous
    mysql.
  • Exemple
  • lt?php
  • mysql_select_db(BD,connexion)
  • ?gt

66
Exécuter une requête (1)
  • int mysql_query(string code,int identifiant de
    connexion)
  • Adresse une requête SQL au serveur MySQL.
  • Requête de texte code
  • Renvoie un identificateur de résultat
  • Vrai si la requête est valide
  • Dans le cas d une clause SELECT, MySQL retourne
    un identifiant de résultat à utiliser
    ultérieurement dans les opérations de
    consultation.
  • resultmysql_query(query)
  • NB Résultat accessible avec la variable
    result.

67
Exemple
  • lt?php
  • mysql_select_db(BD) or die("Echec selection
    BD")
  • requete "SELECT mois,jour,fete FROM fetes"
  • resultat mysql_query(requete,connexion)
  • ...
  • ?gt

68
Exécuter une requête (2)
  • int mysql_db_query(string base, string requête,
    int identifiant de connexion)
  • envoie une requête en précisant le nom de la base
    de données à activer
  • mélange des deux fonctions précédentes

69
Exemple
  • lt?php
  • requete "SELECT nom,age FROM etudiant"
  • resultat mysql_db_query(BD,requete,connexion
    )
  • // Équivaut à
  • mysql_select_db(BD,connexion)
  • requete " SELECT nom,age FROM etudiant"
  • resultat mysql_query(requete,connexion)
  • ?gt

70
Traitement des erreurs
  • Ajout dun opérateur _at_ évite la sortie du script.
  • Fonction die() provoque linterruption du script.
  • Fonctions
  • int mysql_errno(int mid)
  • Numéro de la dernière erreur
  • string mysql_error(int mid)
  • Texte de la dernière erreur
  • mid identifiant de connexion valide
  • retourné par une des fonctions mysql_connect() ou
    mysql_pconnect().

71
Exemple
  • lt?php
  • ...
  • mid _at_mysql_connect(Host,User,Passwd) or
  • die("Erreur connexion MySQL")
  • echo "Identifiant de la connexion ",mid
  • ...
  • ?gt

72
Exemple
  • lt?php
  • resultat mysql_query(requete,connexion)
  • if (!resultat)
  • print "ltpgtErreur lors de l'exécution de la
    requête !ltbr /gt Code " . mysql_errno() . " -
    Message " . mysql_error() ."lt/pgt"
  • else
  • //on traite le résultat
  • ?gt

73
Exploiter les résultats
  • array mysql_fetch_row(int result)
  • Récupère une des lignes du résultat, et
    positionne le curseur sur la ligne suivante.
  • La ligne est représentée sous forme dun tableau
    (une liste de valeurs).
  • Accès aux données
  • TableauIndice où les indices correspondent aux
    champs utilisés dans la requête
  • NB result Résultat de requête

74
Exemple
  • lt?php
  • requete "SELECT nom,age FROM etudiant"
  • resultat mysql_query(requete,connexion)
  • ligne mysql_fetch_row(resultat)
  • print "ltpgtNom ligne0ltbr/gt\n"
  • print "Age ligne1lt/pgt\n"
  • ?gt

75
mysql_fetch_array
  • array mysql_fetch_array(int result)
  • transforme la ligne courante en un tableau
    associatif (clé/valeur) à indices numériques ou
    nommés
  • accès aux données TableauIndice/Nom_Indice
    où les indices correspondent aux champs utilisés
    dans la requête

76
Exemple
  • lt?php
  • requete "SELECT FROM etudiant"
  • resultat mysql_query(requete,connexion)
  • ligne mysql_fetch_array(resultat)
  • print "ltpgtNom lignenomltbr /gt\n"
  • print "Age ligneagelt/pgt\n"
  • ?gt

77
mysql_fetch_object
  • object mysql_fetch_object(int identificateur de
    résultat)
  • transforme la ligne courante en un objet
  • accès aux données
  • nomObjet-gtnomChamp (utilisé dans la requête)
  • syntaxe recommandée !
  • gère les alias sur les noms des champs

78
Exemple
  • lt?php
  • requete "SELECT FROM etudiant"
  • resultat mysql_query(requete,connexion)
  • ligne mysql_fetch_object(resultat)
  • print "ltpgtNom ligne-gtnomltbr /gt\n"
  • print "Age ligne-gtagelt/pgt\n"
  • ?gt

79
Récupérer TOUTES les lignes du résultat
  • Problème
  • mysql_fetch_row, mysql_fetch_array,
    mysql_fetch_object récupèrent uniquement la
    première ligne du résultat
  • Appeler n fois la fonction ?
  • Solution
  • Utiliser une boucle (while ou for)

80
Exemple
  • lt?php
  • requete "SELECT nom,age FROM etudiant"
  • resultat mysql_query(requete,connexion)
  • while (ligne mysql_fetch_object(resultat))
  • print "ltpgtNom ligne-gtnomltbr /gt\n"
  • print "Age ligne-gtagelt/pgt\n"
  • ?gt

81
Compter les lignes
  • int mysql_num_rows(int result)
  • nombre de lignes du résultat d'identifiant result
  • int mysql_affected_rows(int identifiant de
    connexion)
  • nombre de lignes affectées lors de la dernière
    INSERT, UPDATE ou DELETE.

82
Exemple
  • requete "SELECT FROM etudiant"
  • resultat mysql_query(requete,connexion)
  • nblignes mysql_num_rows(resultat)
  • print "ltpgtIl y a nblignes correspondant à votre
    requête.lt/pgt"
  • requete "DELETE FROM etudiant WHERE
    nom 'Dupond'"
  • resultat mysql_query(requete,connexion)
  • nblignes mysql_affected_rows()
  • print "ltpgtnblignes ont été supprimées.lt/pgt"

83
Récupérer le dernier identifiant généré
automatiquement
  • int mysql_insert_id()
  • renvoie l'identifiant généré sur un champ de type
    auto_increment à la suite d'un ordre INSERT
  • lt?php
  • requete "INSERT INTO etudiant VALUES
    ('','nom','age')"
  • resultat mysql_query(requete,connexion)
  • if (resultat)
  • print "ltpgtLa fiche numéro " . mysql_insert_id()
    . " a été créée.lt/pgt"
  • ?gt

84
Libérer la mémoire et fermer la connexion
  • Libérer Mémoire allouée au résultat dune requête
  • int mysql_free_result(int result)
  • libère la mémoire allouée au résultat
    d identifiant result
  • Lidentifiant ne peut plus être employé
  • Fermeture de la connexion
  • int mysql_close(int mid)
  • ferme la connexion associée à mid ou la dernière
    connexion ouverte (si pas d argument)
  • NB Fermer la connexion explicitement est
    optionnel.

85
Exemple
  • lt?php
  • connexion mysql_connect("mysqlhost.info.unicaen
    .fr",
  • "chahir","toto")
  • mysql_select _db("chahir",connexion)
  • requete "SELECT nom, age FROM etudiant"
  • resultat mysql_query(requete,connexion)
  • while (ligne mysql_fetch_object(resultat))
  • print "ltpgtNom ligne-gtnomltbr /gt\n"
  • print "Age ligne-gtprenomlt/pgt\n"
  • mysql_free_result(resultat)
  • mysql_close(connexion)
  • ?gt

86
Autres API PHP MySQL
  • Nombre de colonnes
  • int mysql_num_fields(int result)
  • Ex. nbcol mysql_num_fields(result)
  • Accès aux attributs d'un tuple
  • mysql_result(result,no_tuple,nom-champ)
  • Ex. nommysql_result(result,0,'nom')
  • http//www.php.net/manual/en/ref.mysql.php

87
Exemple
  • mysql_connect( mysqlhost', chahir', toto')
  • mysql_select_db('chahir')
  • requete"select nom, age from etudiant"
  • resultmysql_query(requete)
  • nmysql_num_rows(result)
  • echo n.' etudiant(s) dans la base \n'
  • for (i0 iltn i)
  • nommysql_result(result,i,'nom')
  • agemysql_result(result,i,'age')
  • echo '\t'.nom.', '.age.' ans\n'
  • mysql_close()

88
Les références en PHP
  • En PHP, les références sont destinées à appeler
    le contenu d'une variable avec un autre nom.
  • lt?phpa  'old'b  aa  'new'//La
    valeur de b devient new
  • c  b// copie de valeur simplea  'new
    new'//b devient 'new new, c reste
    'new'a0  'old'b  ac  b//copie
    simplea0  'new'// b0 devient
  • // c0 reste 'old'
  • ?gt

89
Passage darguments par référence (1)
  • Par défaut, les arguments sont passés à la
    fonction par valeur.
  • Si vous voulez qu'un argument soit toujours passé
    par référence, vous pouvez ajouter un '' devant
    l'argument dans la déclaration de la fonction
  • lt?php    function add_some_extra(string)     
       string . ', et un peu plus.'        str 
     'Ceci est une chaîne'    add_some_extra(str)
        echo str    / affiche 'Ceci est une
    chaîne, et un peu plus. /?gt

90
Passage darguments par référence (2)
  • Si vous souhaitez passer une variable par
    référence à une fonction mais de manière
    ponctuelle, vous pouvez  ajouter un '' devant
    l'argument dans l'appel de la fonction
    lt?php    function foo (bar)        bar . ',
    et un peu plus.'        str  'Ceci est une
    chaîne'    foo (str)    echo str// affiche
    'Ceci est une chaîne'    foo (str)    echo s
    tr / affiche 'Ceci est une chaîne, et un peu
    plus. /?gt

91
Valeur par défaut
  • Vous pouvez définir comme en C des valeurs par
    défaut pour les arguments de type scalaire
  • lt?php    function servir_apero (type  "ricard
    ")     return "Servir un verre de type.\n"   
         echo servir_apero()    echo servir_apero(
    "whisky")?gt
Write a Comment
User Comments (0)
About PowerShow.com