I. Introduction▲
Apprenez à utiliser le langage PHP pour développer des sites Web dynamiques grâce, notamment, à l'interaction facile de ce langage avec les bases de données.
Ce langage est idéal pour créer des blogs ou des forums de discussion.
Avec la méthode "Développement Facile", vous allez pouvoir créer des sites Web dynamiques avec du contenu évolutif et une maintenance facilitée.
Retrouvez un extrait de la formation "PHP Facile", composée de plus de 30 cours professionnels pour vous aider à progresser rapidement avec la maîtrise du langage PHP.
II. Les bases de données MySQL n'auront plus de secret pour vous en PHP▲
Dans cette première vidéo, découvrez une introduction au bases de données MySQL en PHP.
Apprenez à vous connecter et vous déconnecter de votre base de données.
Ci-dessous, l'exemple de code
<?php
/**
The
Initial
Developer
of
the
Original
Code
is
Matthieu
-
http
:
/
/
www
.
programmation
-
facile
.
com
/
Portions
created
by
the
Initial
Developer
are
Copyright
(
C
)
2013
the
Initial
Developer
.
All
Rights
Reserved
.
Contributor
(
s
)
:
*/
//
connexion
à
une
base
de
données
MySQL
//
initialisation
du
tableau
de
connexion
à
MySQL
$
aConnect
=
array();
$
aConnect
[
'
ip
'
]
=
"
localhost
"
;
//
le
serveur
$
aConnect
[
'
login
'
]
=
"
root
"
;
//
le
login
$
aConnect
[
'
password
'
]
=
"
mot_de_passe
"
;
//
mot
de
passe
$
aConnect
[
'
database
'
]
=
"
nom_de_la_base
"
;
//
nom
de
la
base
de
donnee
$
aConnect
[
'
port
'
]
=
"
3306
"
;
//
$
oConnect
=
mysqli_connect($
aConnect
[
'
ip
'
]
,
$
aConnect
[
'
login
'
]
,
$
aConnect
[
'
password
'
]
,
$
aConnect
[
'
database
'
]
,
$
aConnect
[
'
port
'
]
);
if ($
oConnect
)
{
echo "
Connexion
réussie
:
version
du
serveur
=
"
.
$oConnect
->server_info
.
"
<
br
/
>
"
;
//
Déconnexion.
$
bClose
=
mysqli_close($
oConnect
);
echo "
Déconnexion
:
bClose
=
"
.
$
bClose
.
"
<
br
/
>
"
;
}
else
{
echo "
Erreur
lors
de
la
connexion
.
<
br
/
>
"
;
}
?>
III. Comment lire des données MySQL depuis PHP▲
Apprenez grâce à cette vidéo, à lire les données présentes dans votre base MySQL depuis votre code PHP.
Après vous être connecté, vous voudrez sûrement récupérer les données de votre base pour les afficher.
Ci-dessous, l'exemple de code
<?php
/**
The
Initial
Developer
of
the
Original
Code
is
Matthieu
-
http
:
/
/
www
.
programmation
-
facile
.
com
/
Portions
created
by
the
Initial
Developer
are
Copyright
(
C
)
2013
the
Initial
Developer
.
All
Rights
Reserved
.
Contributor
(
s
)
:
*/
//
connexion
à
une
base
de
données
MySQL
//
initialisation
du
tableau
de
connexion
à
MySQL
$
aConnect
=
array();
$
aConnect
[
'
ip
'
]
=
"
localhost
"
;
//
le
serveur
$
aConnect
[
'
login
'
]
=
"
root
"
;
//
le
login
$
aConnect
[
'
password
'
]
=
"
mot_de_passe
"
;
//
mot
de
passe
$
aConnect
[
'
database
'
]
=
"
nom_de_la_base
"
;
//
nom
de
la
base
de
donnee
$
aConnect
[
'
port
'
]
=
"
3306
"
;
//
$
oConnect
=
mysqli_connect($
aConnect
[
'
ip
'
]
,
$
aConnect
[
'
login
'
]
,
$
aConnect
[
'
password
'
]
,
$
aConnect
[
'
database
'
]
,
$
aConnect
[
'
port
'
]
);
if ($
oConnect
)
{
echo "
Connexion
réussie
:
version
du
serveur
=
"
.
$oConnect
->server_info
.
"
<
br
/
>
"
;
//
Déconnexion.
$
bClose
=
mysqli_close($
oConnect
);
echo "
Déconnexion
:
bClose
=
"
.
$
bClose
.
"
<
br
/
>
"
;
}
else
{
echo "
Erreur
lors
de
la
connexion
.
<
br
/
>
"
;
exit();
}
$
s_sqlSelect
=
"
SELECT
nom
,
prenom
FROM
PERSONNE
WHERE
age
=
26
"
;
$
oResult
=
@
mysqli_query($
oLinkSql
,
$
s_sqlSelect
);
//
si
la
requête
a
réussie
?
if ($
oResult
)
{
echo "
Requête
exécutée
.
<
br
/
>
"
;
//
parcours
de
tous
les
résultats
while ( $
oSqlObject
=
mysqli_fetch_object($
oResult
) )
{
$
sName
=
$oSqlObject
->nom
;
$
sPrénom
=
$oSqlObject
->prenom
;
echo "
Nom
de
la
personne
âgée
de
26
ans
:
"
.
$
sName
.
"
<
br
/
>
"
;
}
}
else
{
echo "
Echec
de
l
'
exécution
de
la
requête
.
<
br
/
>
"
;
}
//
Déconnexion.
$
bClose
=
mysqli_close($
oLinkSql
);
echo "
Déconnexion
:
bClose
=
"
.
$
bClose
.
"
<
br
/
>
"
;
?>
IV. Comment mettre à jour les données MySQL avec PHP▲
Dans cette vidéo, apprenez la mise à jour des données de votre base MySQL en PHP.
Ci-dessous, l'exemple de code
<?php
/**
The
Initial
Developer
of
the
Original
Code
is
Matthieu
-
http
:
/
/
www
.
programmation
-
facile
.
com
/
Portions
created
by
the
Initial
Developer
are
Copyright
(
C
)
2013
the
Initial
Developer
.
All
Rights
Reserved
.
Contributor
(
s
)
:
*/
//
connexion
à
une
base
de
données
MySQL
//
initialisation
du
tableau
de
connexion
à
MySQL
$
aConnect
=
array();
$
aConnect
[
'
ip
'
]
=
"
localhost
"
;
//
le
serveur
$
aConnect
[
'
login
'
]
=
"
root
"
;
//
le
login
$
aConnect
[
'
password
'
]
=
"
mot_de_passe
"
;
//
mot
de
passe
$
aConnect
[
'
database
'
]
=
"
nom_de_la_base
"
;
//
nom
de
la
base
de
donnee
$
aConnect
[
'
port
'
]
=
"
3306
"
;
//
$
oConnect
=
mysqli_connect($
aConnect
[
'
ip
'
]
,
$
aConnect
[
'
login
'
]
,
$
aConnect
[
'
password
'
]
,
$
aConnect
[
'
database
'
]
,
$
aConnect
[
'
port
'
]
);
if ($
oConnect
)
{
echo "
Connexion
réussie
:
version
du
serveur
=
"
.
$oConnect
->server_info
.
"
<
br
/
>
"
;
//
Déconnexion.
$
bClose
=
mysqli_close($
oConnect
);
echo "
Déconnexion
:
bClose
=
"
.
$
bClose
.
"
<
br
/
>
"
;
}
else
{
echo "
Erreur
lors
de
la
connexion
.
<
br
/
>
"
;
exit();
}
$
s_sqlDelelte
=
"
DELETE
FROM
PERSONNE
WHERE
age
=
26
"
;
$
oResult
=
@
mysqli_query($
oLinkSql
,
$
s_sqlDelelte
);
//
si
la
requête
a
réussie
?
if ($
oResult
)
{
echo "
Suppression
de
toutes
les
personnes
âgées
de
26
ans
effectuée
.
<
br
/
>
"
;
}
else
{
//
récupération
et
affichage
du
message
d'erreur
echo "
Echec
de
l
'
exécution
de
la
requête
.
Query
:
"
.
$
s_sqlDelelte
.
"
-
error
:
"
.
mysqli_error($
oLinkSql
).
"
<
br
/
>
"
;
}
//
Déconnexion.
$
bClose
=
mysqli_close($
oLinkSql
);
echo "
Déconnexion
:
bClose
=
"
.
$
bClose
.
"
<
br
/
>
"
;
?>
V. Comment utiliser la puissance des sessions avec PHP▲
Découvrez dans cette vidéo, comment gérer les sessions en PHP.
Gérez de façon unique les visiteurs de votre site grâce aux sessions.
Ci-dessous, l'exemple de code.
<?php
/**
The
Initial
Developer
of
the
Original
Code
is
Matthieu
-
http
:
/
/
www
.
programmation
-
facile
.
com
/
Portions
created
by
the
Initial
Developer
are
Copyright
(
C
)
2013
the
Initial
Developer
.
All
Rights
Reserved
.
Contributor
(
s
)
:
*/
//
création
d'un
idenfiant
unique
echo uniqid().
"
<
br
/
>
"
;
echo uniqid().
"
<
br
/
>
<
br
/
>
"
;
echo uniqid("
abc
"
).
"
<
br
/
>
<
br
/
>
"
;
echo uniqid("
"
,
TRUE).
"
<
br
/
>
"
;
//
ajout
d'un
chiffrement
supplémentaire
echo md5( uniqid() ).
"
<
br
/
>
<
br
/
>
"
;
echo md5( uniqid() ).
"
<
br
/
>
"
;
?>
VI. Une classe MySQL pour gagner énormément de temps avec PHP▲
Vous avez déjà vu les concepts de la programmation orientée objet en PHP.
Appliquez ce concept avec les bases de données MySQL en PHP.
Gagnez du temps et rendez votre code beaucoup plus robuste.
Ci-dessous, l'exemple de code.
<?php
/**
The
Initial
Developer
of
the
Original
Code
is
Matthieu
-
http
:
/
/
www
.
programmation
-
facile
.
com
/
Portions
created
by
the
Initial
Developer
are
Copyright
(
C
)
2013
the
Initial
Developer
.
All
Rights
Reserved
.
Contributor
(
s
)
:
*/
/**
*
@file
Mysql
.
php
*
*
@author
Matthieu
*
*
@version
0
.
1
@usage
$oSqlConnection
=
new
Mysql
(
)
;
$
s_sqlSelect
=
"
SELECT
nbvisiteur
FROM
compteur_visite
WHERE
ip
=
'
192
.
168
.
0
.
23
'
"
;
$
o_sqlResult
=
$oSqlConnection
->query(
$
s_sqlSelect
)
;
while
(
$
o_result
=
$oSqlConnection
->getObject(
$
o_sqlResult
)
)
{
/
/
caractéristiques
des
messages
$
n_nbVisiteur
=
$o_result
->nbvisiteur
;
}
Documentation
:
http
:
/
/
dev
.
mysql
.
com
/
doc
/
refman
/
5
.
0
/
fr
/
sql
-
syntax
.
html
Installation
d
'
un
environnement
PHP
,
MySQL
sous
Windows
(
pour
vos
tests
)
WampServer
:
http
:
/
/
www
.
wampserver
.
com
/
EasyPHP
:
http
:
/
/
www
.
easyphp
.
org
/
exemple
de
requêtes
MySQL
SELECT
*
FROM
wordpress_useronline
WHERE
username
=
'
Matthieu
'
SELECT
ID
,
user_login
FROM
wordpress_users
WHERE
user_login
=
'
Matthieu
'
AND
ID
=
2
SELECT
posts
.
post_author
,
users
.
user_login
,
posts
.
post_date
,
posts
.
post_content
,
posts
.
post_title
,
posts
.
post_name
FROM
`
wordpress_posts
`
posts
INNER
JOIN
wordpress_users
users
ON
users
.
ID
=
posts
.
post_author
AND
users
.
user_login
=
'
Matthieu
'
*/
class Mysql
{
private $
oLinkSql
;
//
la
connexion
mysql
en
cours
private $
oResult
;
//
le
résultat
de
la
requête
exécutée
private $
aConnect
;
//
la
configuration
de
la
base
de
données
//
----------------------------------
__construct()
----------------------------------------------------------
/**
*
@brief
*
@param
-
*/
public function __construct()
{
//
initialisation
des
propriétés
de
la
classe
$this
->aConnect
=
array();
/*
delfiweb
*/
$this
->aConnect
[
'
ip
'
]
=
"
localhost
"
;
//
le
serveur
$this
->aConnect
[
'
login
'
]
=
"
root
"
;
//
le
login
$this
->aConnect
[
'
password
'
]
=
"
mot_de_passe
"
;
//
mot
de
passe
$this
->aConnect
[
'
database
'
]
=
"
nom_de_la_base
"
;
//
nom
de
la
base
de
données
$this
->aConnect
[
'
port
'
]
=
"
3306
"
;
//
/*
local
$ip
=
"localhost";
$login
=
"root";
//
le
login
$password
=
"";
//
mot
de
passe
*/
//
adresse
id
$_SERVER["REMOTE_ADDR"];
if ( $this
->oLinkSql
=
@
mysqli_connect( $this
->aConnect
[
'
ip
'
]
,
$this
->aConnect
[
'
login
'
]
,
$this
->aConnect
[
'
password
'
]
,
$this
->aConnect
[
'
database
'
]
,
$this
->aConnect
[
'
port
'
]
) )
{
$
is_erreur
=
false ;
$
sql
=
'
SET
CHARACTER
SET
\'utf8\'
'
;
$this
->query
($
sql
);
$
sql
=
'
SET
collation_connection
=
\'utf8_general_ci\'
'
;
$this
->query
($
sql
);
}
else //
erreur
de
connexion
à
la
base
->
redirection
sur
une
page
d'erreur
{
echo "
<
meta
http
-
equiv
=
\
"
refresh\
"
content
=
\
"
0
;
URL
=
erreurs
/
erreurBDD
.
htm\
"
>
"
;
//
possibilité
d'utiliser
un
header('Location:
erreurs/erreurBDD.htm');
exit;
}
}
//
-----------------------------------------------------------------------------------------------------------
//
-------------------------------------------
PUBLIC
FUNCTIONS
---------------------------------------------
//
-----------------------------------------------------------------------------------------------------------
/**
*
Permet
de
récupérer
les
paramètres
de
connexion
de
la
base
.
*
Utile
pour
d
'
autres
scripts
PHP
.
*
*
@return
:
un
tableau
avec
les
paramètres
de
connexion
de
la
base
*/
public function getConfig()
{
return $this
->aConnect
;
}
/**
*
Exécute
une
requête
mysql
*
*
@param
requête
*
@return
:
un
message
d
'
erreur
ou
l
'
objet
avec
le
résultat
de
la
requête
*/
public function query($
sSqlQuery
)
{
if ( $this
->oResult
=
@
mysqli_query($this
->oLinkSql
,
$
sSqlQuery
) ) return $this
->oResult
;
else return '
Query
:
'
.
$
sSqlQuery
.
'
-
error
:
'
.
@
mysqli_error($this
->oLinkSql
);
}
/*
*
Donne
le
résultat
de
la
requête
sous
forme
d'objet
*
*
@param
$oResultQuery
:
le
résultat
renvoyé
par
une
requête
pour
obtenir
un
objet
*/
public function getObject($
oResultQuery
=
NULL)
{
//
dans
le
résultat
d'une
autre
requête
if($
oResultQuery
!
=
NULL)
{
return @
mysqli_fetch_object($
oResultQuery
);
//
if
(
@mysqli_error($this->oLinkSql)
)
return
@mysqli_error($this->oLinkSql);
}
//
donne
le
résultat
de
la
dernière
requête
exécutée
if ($this
->oResult
!
=
NULL)
{
return mysqli_fetch_object($this
->oResult
);
//
if
(
@mysqli_error($this->oLinkSql)
)
return
@mysqli_error($this->oLinkSql);
}
}
//
----------------------------------
getNumRows()
----------------------------------------------------------
/**
*
@brief
donne
le
nombre
d
'
éléments
modifiés
par
la
requête
*
Pratique
dans
le
cas
des
INSERT
*
*
@return
(
integer
)
le
nombre
d
'
éléments
modifiés
par
la
requête
*/
public function getNumRows()
{
if( $this
->oLinkSql
!
=
NULL &
&
$this
->oLinkSql
!
=
false)
{
return @
mysqli_affected_rows($this
->oLinkSql
);
//
if
(@mysqli_error($this->oLinkSql))
return
@mysqli_error($this->oLinkSql);
}
}
//
----------------------------------
lastInsertId()
----------------------------------------------------------
/**
*
@brief
Retourne
l
'
identifiant
automatiquement
généré
par
la
dernière
requête
.
*
Pratique
dans
le
cas
d
'
un
INSERT
ou
UPDATE
pour
récuperer
le
dernier
identifiant
*
*
@return
(
integer
)
le
dernier
identifiant
inséré
*/
public function lastInsertId()
{
return @
mysqli_insert_id($this
->oLinkSql
);
}
//
-----------------------------------------------------------------------------------------------------------
//
-----------------------------------------
Others
----------------------------------------------------------
//
-----------------------------------------------------------------------------------------------------------
/**
*
@brief
*
*
@return
*/
public function __destruct()
{
$this
->oLinkSql
=
NULL ;
$
b_rep
=
@
mysqli_close($this
->oLinkSql
);
if( $
b_rep
!
=
true )
return '
Erreur
closing
sql
connexion!
'
;
}
//
----------------------------------------
__toString()
----------------------------------------------------
/**
*
@brief
Returns
the
string
representation
of
this
instance
.
*
*
@usage
echo
(
myObject
)
ou
print
(
myObject
)
*
@return
the
string
representation
of
this
instance
.
*/
public function __toString()
{
$
s_classContent
=
"
[
Object
"
.
__CLASS__.
"
]
<
br
/
>
"
;
foreach($
this
as $
prop
=
>
$
value
)
{
$
s_classContent
.
=
"
$
prop
=
>
$
value
<
br
/
>
"
;
}
return $
s_classContent
;
}
}
?>
VII. Comment utiliser les formulaires avec PHP▲
Dans cette vidéo, découvrez une introduction au formulaire en PHP.
Ci-dessous, l'exemple de code
<?php
/**
The
Initial
Developer
of
the
Original
Code
is
Matthieu
-
http
:
/
/
www
.
programmation
-
facile
.
com
/
Portions
created
by
the
Initial
Developer
are
Copyright
(
C
)
2013
the
Initial
Developer
.
All
Rights
Reserved
.
Contributor
(
s
)
:
*/
//
exemple
d'un
formulaire
?>
<
!
DOCTYPE html PUBLIC "
-
/
/
W3C
/
/
DTD
XHTML
1
.
0
Strict
/
/
EN
"
"
http
:
/
/
www
.
w3
.
org
/
TR
/
xhtml1
/
DTD
/
xhtml1
-
strict
.
dtd
"
>
<
html xmlns=
"
http
:
/
/
www
.
w3
.
org
/
1999
/
xhtml
"
>
<
head>
<
title>
Vos informations<
/
title>
<
/
head>
<
body>
<
form action=
"
form_action
.
php
"
method=
"
post
"
>
<
div>
Nom :
<
input type=
"
text
"
name=
"
nom
"
value=
"
"
size=
"
20
"
maxlength=
"
20
"
/
>
Mot de passe :
<
input type=
"
password
"
name=
"
mot_de_passe
"
value=
"
"
size=
"
20
"
maxlength=
"
20
"
/
>
<
br /
>
Sexe :
<
input type=
"
radio
"
name=
"
sexe
"
value=
"
M
"
/
>
Masculin
<
input type=
"
radio
"
name=
"
sexe
"
value=
"
F
"
/
>
Feminin
<
br /
>
Photo :
<
input type=
"
file
"
name=
"
photo
"
value=
"
"
size=
"
50
"
/
>
<
br /
>
Couleurs preferees :
<
input type=
"
checkbox
"
name=
"
couleurs
[
bleu
]
"
/
>
Bleu
<
input type=
"
checkbox
"
name=
"
couleurs
[
blanc
]
"
/
>
Blanc
<
input type=
"
checkbox
"
name=
"
couleurs
[
rouge
]
"
/
>
Rouge
<
br /
>
Langue :
<
select name=
"
langue
"
>
<
option value=
"
E
"
>
Espagnol<
/
option>
<
option value=
"
F
"
selected=
"
selected
"
>
Francais<
/
option>
<
option value=
"
I
"
>
Italien<
/
option>
<
/
select>
<
br /
>
Langages de programmation préférés :
<
br /
>
<
select name=
"
fruits
[
]
"
multiple=
"
multiple
"
size=
"
8
"
>
<
option value=
"
AS
"
>
ActionScript<
/
option>
<
option value=
"
J
"
>
JavaScript<
/
option>
<
option value=
"
C
"
>
C<
/
option>
<
option value=
"
asm
"
>
Assembleur<
/
option>
<
/
select>
<
br /
>
Des suggestions :
<
br /
>
<
textarea name=
"
commentaire
"
rows=
"
4
"
cols=
"
50
"
>
<
/
textarea>
<
br /
>
<
input type=
"
hidden
"
name=
"
invisible
"
value=
"
693228
"
/
>
<
br /
>
<
input type=
"
submit
"
name=
"
soumettre
"
value=
"
Valider
vos
reponses
"
/
>
<
input type=
"
image
"
name=
"
valider
"
src=
"
valider
.
gif
"
/
>
<
input type=
"
reset
"
name=
"
effacer
"
value=
"
Effacer
"
/
>
<
/
div>
<
/
form>
<
/
body>
<
/
html>
VIII. Recevez gratuitement la formation "PHP Facile"▲
Si vous souhaitez aller plus loin dans la création de sites Web dynamique,
vous pouvez recevoir gratuitement la formation "PHP Facile" avec des cours pas à pas, accompagnés des codes source commentés.
Ainsi, vous progressez à votre rythme, avec un suivi personnalisé et individuel. Vous avez la possibilité de poser toutes vos questions techniques sous chaque cours.
Vous allez ainsi découvrir comment utiliser le langage PHP et les bases de données MySQL.
Cliquez simplement ici pour recevoir gratuitement la formation "PHP Facile" !Cliquez simplement ici pour recevoir gratuitement la formation PHP Facile !
IX. Remerciements▲
Merci beaucoup à l'équipe de rédaction de Developpez.com de contribuer à la diffusion de ce tutoriel.
J'adresse également un merci tout particulier à Jacques Jeanjacques_jean pour sa relecture orthographique.