Tutorial PHP / MS Access – Recherche dans une table (3/4)

Cet article fait partie d’une série d’articles sur l’utilisation d’une connexion odbc avec Access par PHP. Dans l’article précédent nous avons vu comment manipuler (insert, select) une table Access avec PHP. Nous allons voir comment rechercher des données d’une table d’une base de données Access grâce à  PHP.

Vous devez avoir acquis le principe pour exécuter une requête SQL dans Access grâce à  PHP pour comprendre ce chapitre.
Considérons le listing suivant (connexion, exécution de la requête en vue de l’utilisation des résultats comme précédemment).

//Connection à  la base
$connection = odbc_connect("table","admin","") or die("Couldn't connect to datasource.");

//insertion de la ligne
$sql = "???";

//exécution de la requête
$res=odbc_exec($connection,$sql) or die("Couldn't execute statement.")

Comment écrire sa requête $sql pour rechercher des données dans la base?
Le principe est le même qu’avec MySQL, c’est la syntaxe qui change.

Sélection en fonction de la valeur d’un champs:
Je recherche les nom et email de la personne dont le nom est « Durand »:

$sql="SELECT adresses.nom, adresses.email FROM adresses WHERE ((adresses.nom)='Durand');

NB: Dès à  présent vous êtes en mesure de faire vos propres applications en php/Access. Vous serez certainement tenté comme moi de tester la syntaxe de vos requêtes directement dans Acces en vue de les utiliser dans un script. Un petit détail important. Si vous créez votre requête dans un mode différent du mode SQL, (ce qui est très utile par ailleurs), vous vous rendrez compte que Access utilise plutôt des guillemets  » plutôt que les cotes ‘ que j’utilise depuis le début dans toutes mes requêtes. La raison de mon choix, est que Access accepte aussi bien l’un ou l’autre, donc autant en profiter. Ne pas avoir de guillemet d’ans une variable chaîne de caractère de PHP, c’est toujours une source d’ennui en moins 🙂

Sélection en fonction de la valeur de plusieurs champs:
Je recherche les personnes dont le prénom est Gérard et l’adresse email est gerard@email.com (stupide ici, mais c’est pour vous montrer la syntaxe des opérateurs AND, OR, ect… dans une requête SQL pour Access):

$sql="SELECT adresses.nom FROM adresses WHERE ((adresses.prénom)='Gérard');";

Sélection de tous les champs dans une requête:

$sql="SELECT * FROM adresses WHERE ((adresses.nom)='Durand'));";

Sélection des noms commençant par « a »;

$sql="SELECT adresses.nom FROM adresses WHERE (((adresses.nom) like('a*')));";

Pour généralement:
Sur le même principe que les expressions régulières en PHP:
* remplace une chaîne de caractères
? remplace un caractère

Article suivant : Exemple complet