Tutorial PHP / MS Access – Etude de cas (4/4)

Cet article fait suite à  l’article sur l’installation d’une connexion odbc avec Access utilisable par PHP. En nous basant sur un exemple nous allons étudier les différents aspects de l’utilisation d’Access comme base de données pour PHP.

Comme exemple nous allons nous amuser à  traduire le script « Ptitaffiche » de Vince (http://vpontier.free.fr) pour qu’il marche avec Access.
Ce script sert à  afficher de manière aléatoire des bannières dont le lien et l’url sont référencées dans la base de donnée.

Vous pouvez télécharger le script original sur son site. Le script modifié est téléchargeable en bas de page.

  • Création de la table:

Le mieux est de le faire en mode création, néanmoins voici le script SQL:

Structure pour la table ‘bandeaux’ :

CREATE TABLE  bandeaux (
id int(20) ,
url char(20) NOT NULL,
fichier char(20) NOT  NULL,
lien char(30) NOT NULL,
PRIMARY KEY (id)
);

Changez ensuite manuellement le champs id en NumeroAuto

Données pour la table ‘bandeaux’ dans le cas de mes images exemples, livrées avec ce script :
(Les données sont à  insérer les unes après les autres)

INSERT INTO bandeaux VALUES( '0',  'pub', 'pub0.jpg', 'www.free.fr');
INSERT INTO bandeaux VALUES( '1', 'pub',  'pub1.jpg', 'www.fifi.ed');
INSERT INTO bandeaux VALUES( '2', 'pub',  'pub2.jpg', 'www.toto.fr');
INSERT INTO bandeaux VALUES( '3', 'pub',  'pub3.jpg', 'www.tutu.net');
INSERT INTO bandeaux VALUES( '4', 'pub',  'pub4.jpg', 'www.momo.org');
  • Mise en place dans le pilote ODBC (cf installation)

Nommez la base « bandeaux »

  • Script:
\n\n\n");

?>

Voilà . Pour insérer la bannière dans vos pages vous n’avez qu’à  inclure la ligne suivante:

  • Spécificités SQL:

Les caractères « jokers » comme * ne fonctionnent pas forcément.

Imaginons que je veuille récupérer tous les noms commenà§ant par la lettre « a » dans une table contenant des adresses de contacts.
La requête ressemblerait à  celle-ci:

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

Cette requête ne fonctionne pas avec le pilote odbc pour Access 97 mais marche très bien avec Access 2000

Si vous avez besoin d’un moteur de recherche ou d’un script utilisant ces méthodes de recherches, utilisez Access 2000 ou bien essayez une solution de rechange. la meilleure est l’utilisation des tableaux en PHP.

Explication: Vous placez tous les résultats susceptibles de correspondre dans un tableau PHP (en gros tous les champs utiles de toute une table). Ensuite vous utilisez les expressions régulières de PHP pour trouver les lignes du tableau qui sont bonnes. Vous placez celles-ci dans un second tableau qui sera votre tableau résultat.

  • Télécharger le script complet:

Le script PtitAffich de Vincent Pontier modifié par mes soins pour fonctionner avec Access est ici.