Easy-Micro

ESPACEMEMBRE PHP-MySQL
Afficher Access

Afficher une table Access

Afficher des données provenant d'une base de données ACCESS

Création du DSN (Data Souce Name) pour Access
Pour pouvoir utiliser ACCESS comme SGBD avec un autre langage, il faut créer un DSN : 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.

Windows Seven
Pas de sources de données ODBC par défaut sous Windows Seven! Vous devez l'éxécutez directement dans l'Explorateur Windows de Seven depuis : C: / Windows / SysWOW64 / odbcad32.exe

Utiliser ODBC Manager (facultatif)
Sinon, pour pouvoir exporter votre ODBC sur d'autre système, après avoir installé le DSN, utiliser le logiciel "DTM ODBC Manager" : Pour l'utiliser, aller dans User DSN, sélectionner la source puis exporter le fichier dsi. Attention, le chemin doit être identique pour tous les utilisateurs. ODBC Manager doit aussi être utilisé pour récupérer le fichier dsi (par le bouton Importer).

On utilise des fonctions PHP prédéfinis :
1 - Connexion à la base : odbc_connect("nom_de_la_base", "login", "password")
2 - Requête SQL : odbc_exec(odbc_connect(),requete)
3 - Affichage des résultats : odbc_fetch_array(résultat_de_requete)
Note: odbc_fetch_array(résultat_de_requete) n'accepte que des noms de colonnes (et pas d'indice).

Pour réaliser les codes proposés, vous pouvez utiliser un éditeur de texte comme le bloc-note, l'éditeur de code Notepad++, l'éditeur de code Brackets, ou un éditeur de site web.

Afficher la table "Clients" de la base "Comptoir" dans une liste à puce

Est utilisé ici, la base de donnée "Comptoir.mdb" qui contient les tables "Clients", "Fournisseurs", "Produits" ou "Catégories".

Attention: "comptoir" est le nom saisie dans l'administrateur de sources de données ODBC (onglet Utilisateur)

<?php
// "comptoir" est le nom saisie dans l'Administrateur de sources de données ODBC (onglet Utilisateur)
$connexion = odbc_connect("comptoir","root","") or die("erreur de connexion au serveur");
$requete = "SELECT * FROM Clients"; // ou tables "Fournisseurs" ou "Produits" ou "Catégories"

// Exécution de la requête (comme mysql_query)
$resultat = odbc_exec($connexion,$requete);
?>

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=latin-1" />
<title>Affichage base ACCESS</title>
</head>
<body>

<ul>
<?php
// Note: odbc_fetch_array($resultat) n'accepte que des noms de colonnes (et pas d'indice)
while ($ligne = odbc_fetch_array($resultat)) {
echo "<li>".$ligne['Contact']."</li>";
}
echo "</ul>";

// coupe la connexion (comme mysql_close - facultatif)
odbc_close($connexion);
?>

</body>
</html>

Autre fonctions utiles:
odbc_fetch_row($resultat) identique à odbc_fetch_aray($resultat).
odbc_field_name($resultat,$i) - Attention, le premier indice d'une table Access commence à 1.
odbc_num_fields($resultat) donne le nombre d'enregistrement.

Exemple qui affiche le contenu de n'importe quelle table de la base Comptoir :
<?php
// "comptoir" est le nom saisie dans l'Administrateur de sources de données ODBC (onglet Utilisateur)
$connexion = odbc_connect("comptoir","root","") or die("erreur de connexion au serveur");
$requete = "SELECT * FROM Clients"; // ou tables "Fournisseurs" ou "Produits" ou "Catégories"

// Exécution de la requête (comme mysql_query)
$resultat = odbc_exec($connexion,$requete);
?>

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=latin-1" />
<title>Affichage base ACCESS</title>
</head>
<body>

<table border="1" width="95%" align="center" cellpadding="3">
<tr style="background-color:#ffffcc;">
<?php
// Affichage des en-têtes de collones
for ($i = 1; $i <= odbc_num_fields($resultat); $i++) {
echo "<th>".odbc_field_name($resultat,$i)."</th>";
} ?>
</tr>
<?php
// Affichage du contenu de la table
while($ligne = odbc_fetch_array($resultat)) {
echo "<tr>";
for ($i = 1; $i <= odbc_num_fields($resultat); $i++) {
echo "<td>".$ligne[odbc_field_name($resultat,$i)]."</td>"; } // fin du for
echo "</tr>";
} // fin du while
?>
</table>
</body>
</html>

L'exemple ci-dessus a été réalisé le 30 septembre 2010 avec messieurs Jacques C. et Jean Emmanuel H.


< Page précédente PHP-MYSQL Page suivante >