Aide - Recherche - Membres - Calendrier
Version complète : Utiliser PHP avec Access
Forum Développeur - Administration serveur, programmation et base de données > Contenu > Rédigez vos tutoriaux !
qwix
Dans ce tutorial nous avions vu comment utiliser PHP avec MYSQL.
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é wink.gif
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é. wink.gif


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&eacute;ro de t&eacute;l&eacute;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 wink.gif

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 wink.gif :
[/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>


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]


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 wink.gif
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]



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 wink.gif

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 wink.gif

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

smile.gif
fyury
Mec c'est encore plus crade que du VisualBasic généré dans un désassembleur(olly)...
bandit.gif
On dirait du MD5(sha1($var)), ahère ton tuto.
Ldo
Bonjour Fyury

comme tu l'as sans doute remarqué ce tutoriel a été rédigé en 2004
à cette époque mediabox utilisait un autre outil de forum, et les anciens post, ont été importés mais pas forcément remis en forme

maintenant les tutos sont hébergé sur le wiki :
tu trouvera cet article, mis en forme, à l'adresse :
http://wiki.mediabox.fr/tutoriaux/php/util...php-avec-access

++
fyury
Autant pour moi.

Désolé je n'étais pas au courant :/.
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'informations, la mise en page et les images, veuillez cliquer ici.
Invision Power Board © 2001-2008 Invision Power Services, Inc.