Il est cependant possible d'utiliser PHP avec un base de données Access.
Le travail avec Access est sensiblement le même qu'avec MYSQL, en gros, seuls les noms des fonctions changent. Nous allons voir comment insérer, modifier et supprimer des données dans une base Access.
Création de la base de données
Pour ce tutorial, nous allons utiliser la même base de données que celle utilisée dans ce tutorial
Voici le SQL de cette base, je pars du principe que vous savez créer une base de données et des tables dans Access, si ce n'est pas le cas, vous pouvez regarder dans l'aide du logiciel, c'est bien expliqué
1) Créez une base de données appelées base_personnes
2) Créez une table appelée 'personnes' qui contiendra les champs suivants:
id_personne: type numéro auto, clef primaire de la table.
nom: type texte
prenom: type texte
adresse: type texte
cp: type texte
telephone: type texte
Création du DSN dans Access
Pour ceux qui ne connaissent pas ou peu Access pour pouvoir l'utiliser comme SGBD avec un autre langage, il vous faut créer ce qu'on apelle un DSN, voici la marche à suivre.
Citation
Menu Démarrer
-> Paramètres
-> Panneau de configuration
-> Outils d'administration
-> Source de données(ODBC)
-> Source de données système
-> Ajouter
-> Microsoft Access Driver
-> sélectionnez votre base de données, nommez la et validez, c'est terminé.
-> Paramètres
-> Panneau de configuration
-> Outils d'administration
-> Source de données(ODBC)
-> Source de données système
-> Ajouter
-> Microsoft Access Driver
-> sélectionnez votre base de données, nommez la et validez, c'est terminé.
Retenez bien le nom que vous avez donné à votre DSN car il vous sera utile plus tard. Dans mon cas je l'ai appelé DSN_personnes.
Insérer des données dans votre base
Nous allons créer une page insertion1.php qui va nous permettre de saisir les données à insérer dans la base.
Citation
<html>
<head>
<title>insertion de données en PHP dans Access :: partie 1</title>
</head>
<body>
<form name="insertion" action="insertion2.php" method="POST">
<table border="0" align="center" cellspacing="2" cellpadding="2">
<tr align="center">
<td>nom</td>
<td><input type="text" name="nom"></td>
</tr>
<tr align="center">
<td>prenom</td>
<td><input type="text" name="prenom"></td>
</tr>
<tr align="center">
<td>adresse</td>
<td><input type="text" name="adresse"></td>
</tr>
<tr align="center">
<td>code postal</td>
<td><input type="text" name="codePostal"></td>
</tr>
<tr align="center">
<td>numéro de téléphone</td>
<td><input type="text" name="telephone"></td>
</tr>
<tr align="center">
<td colspan="2"><input type="submit" value="insérer"></td>
</tr>
</table>
</form>
</body>
</html>
<head>
<title>insertion de données en PHP dans Access :: partie 1</title>
</head>
<body>
<form name="insertion" action="insertion2.php" method="POST">
<table border="0" align="center" cellspacing="2" cellpadding="2">
<tr align="center">
<td>nom</td>
<td><input type="text" name="nom"></td>
</tr>
<tr align="center">
<td>prenom</td>
<td><input type="text" name="prenom"></td>
</tr>
<tr align="center">
<td>adresse</td>
<td><input type="text" name="adresse"></td>
</tr>
<tr align="center">
<td>code postal</td>
<td><input type="text" name="codePostal"></td>
</tr>
<tr align="center">
<td>numéro de téléphone</td>
<td><input type="text" name="telephone"></td>
</tr>
<tr align="center">
<td colspan="2"><input type="submit" value="insérer"></td>
</tr>
</table>
</form>
</body>
</html>
img:remarque Notez bien la méthode utilisée par notre formulaire, ici c'est une méthode POST ce qui permet de ne pas afficher les variables dans URL, comme le ferait la méthode GET. IL faut toujours utiliser la méthode POST cela évite de laisser certains trous de sécurité.
Pour bien voir la différence entre les deux méthodes, changez POST en GET dans ce formulaire, et regardez bien votre URL
Voyons maintenant la page insertion2.php:
Citation
<span style='color:#0000BB'><?php
</span>//insertion.php
//connection au serveur
[/color]) ;
[/color]//récupération des valeurs des champs:
//nom:
[/color] ;
[/color]//prenom:
[/color] ;
[/color]//adresse:
[/color] ;
[/color]//code postal:
[/color] ;
[/color]//numéro de téléphone:
[/color] ;
[/color]//création de la requête SQL:
[/color]"INSERT INTO personnes (nom, prenom, adresse, cp, telephone)
VALUES ( '$nom', '$prenom', '$adresse', '$cp', '$tel') " [/color];
[/color]//affichage de la requête SQL pour mieux comprendre
:
[/color]) ;
[/color]//exécution de la requête SQL:
[/color]() ) ;
[/color]//affichage des résultats, pour savoir si l'insertion a marchée:
[/color])
echo([/color]) ;
else
echo([/color]) ;
[/color]
</span>//insertion.php
//connection au serveur
[/color]) ;
[/color]//récupération des valeurs des champs:
//nom:
[/color] ;
[/color]//prenom:
[/color] ;
[/color]//adresse:
[/color] ;
[/color]//code postal:
[/color] ;
[/color]//numéro de téléphone:
[/color] ;
[/color]//création de la requête SQL:
[/color]"INSERT INTO personnes (nom, prenom, adresse, cp, telephone)
VALUES ( '$nom', '$prenom', '$adresse', '$cp', '$tel') " [/color];
[/color]//affichage de la requête SQL pour mieux comprendre
[/color]) ;
[/color]//exécution de la requête SQL:
[/color]() ) ;
[/color]//affichage des résultats, pour savoir si l'insertion a marchée:
[/color])
echo([/color]) ;
else
echo([/color]) ;
[/color]
Modification des données dans votre base
Pour modifier les données il faut tout d'abord pouvoir les récupérer, voici comment faire:
modification1.php
Citation
<html>
<head>
<title>modification de données en PHP :: partie 1</title>
</head>
<body>
<span style='color:#0000BB'><?php
</span>//connection au serveur:
[/color]) ;
[/color]//requête SQL:
[/color];
[/color]//exécution de la requête:
[/color]) ;
[/color]//affichage des données:
[/color]) )
{
echo([/color]) ;
}
[/color]?>
[/color]</body>
</html>
<head>
<title>modification de données en PHP :: partie 1</title>
</head>
<body>
<span style='color:#0000BB'><?php
</span>//connection au serveur:
[/color]) ;
[/color]//requête SQL:
[/color];
[/color]//exécution de la requête:
[/color]) ;
[/color]//affichage des données:
[/color]) )
{
echo([/color]) ;
}
[/color]?>
[/color]</body>
</html>
Et la modification proprement dite:
modification3.php
Citation
<span style='color:#0000BB'><?php
</span>//modification3.php
//connection au serveur
[/color]) ;
[/color]//récupération des valeurs des champs:
//nom:
[/color] ;
[/color]//prenom:
[/color] ;
[/color]//adresse:
[/color] ;
[/color]//code postal:
[/color] ;
[/color]//numéro de téléphone:
[/color] ;
[/color]//récupération de l'identifiant de la personne:
[/color] ;
[/color]//création de la requête SQL:
[/color]"UPDATE personnes
SET nom = '$nom',
prenom = '$prenom',
adresse = '$adresse',
cp = '$cp',
telephone = '$tel'
WHERE id_personne = $id " [/color];
[/color]//exécution de la requête SQL:
[/color]() ) ;
[/color]//affichage des résultats, pour savoir si l'insertion a marchée:
[/color])
echo([/color]) ;
else
echo([/color]) ;
[/color]
</span>//modification3.php
//connection au serveur
[/color]) ;
[/color]//récupération des valeurs des champs:
//nom:
[/color] ;
[/color]//prenom:
[/color] ;
[/color]//adresse:
[/color] ;
[/color]//code postal:
[/color] ;
[/color]//numéro de téléphone:
[/color] ;
[/color]//récupération de l'identifiant de la personne:
[/color] ;
[/color]//création de la requête SQL:
[/color]"UPDATE personnes
SET nom = '$nom',
prenom = '$prenom',
adresse = '$adresse',
cp = '$cp',
telephone = '$tel'
WHERE id_personne = $id " [/color];
[/color]//exécution de la requête SQL:
[/color]() ) ;
[/color]//affichage des résultats, pour savoir si l'insertion a marchée:
[/color])
echo([/color]) ;
else
echo([/color]) ;
[/color]
Suppression des données dans votre base
Comme pour la modification il faut d'abord récupérer les données avant de savoir lesquelles supprimer
La récupération de données est la même que pour la page de modification1.php je passe donc directement à suppression2.php.
suppression2.php
Citation
<span style='color:#0000BB'><?php
</span>//suppression2.php:
//connection au serveur:
[/color]) ;
[/color]//récupération de la variable d'URL,
//qui va nous permettre de savoir quel enregistrementsupprimer:
[/color] ;
[/color]//requête SQL:
[/color];
[/color]//exécution de la requête:
[/color]) ;
[/color]//affichage des résultats, pour savoir si la suppression a marchée:
[/color])
echo([/color]) ;
else
echo([/color]) ;
[/color]
</span>//suppression2.php:
//connection au serveur:
[/color]) ;
[/color]//récupération de la variable d'URL,
//qui va nous permettre de savoir quel enregistrementsupprimer:
[/color] ;
[/color]//requête SQL:
[/color];
[/color]//exécution de la requête:
[/color]) ;
[/color]//affichage des résultats, pour savoir si la suppression a marchée:
[/color])
echo([/color]) ;
else
echo([/color]) ;
[/color]
Conclusion
Comme vous avez pu le constater, le travail sur Access n'est pas radicalement différent de celui sur MYSQL, il suffit de changer le nom des fonctions
Vous trouverez ci-joint une archive contenant, les scripts, et la base de données Access, il ne vous reste plus qu'à créer le DSN
img:remarque Pour améliorer la saisie et la conformité de vos données, vous pouvez utiliser les fonctions suivantes:
- addslashes
- stripslashes
- trim
img:coupe
A voir également :
Récupérer des données dans une base de données en PHP
Récupérer des données d'un formulaire en PHP
img:coupe
Pour toute question concernant ce tutorial, merci d'utiliser les salles du forum.
Merci