Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

CONNEXION BASE DE DONNÉES ACCESS EN PHP VIA ODBC ET EXPLOITATION DE REQUÊTE, RÉCUPÉRER UNE IMAGE DANS UNE BASE DE DONNÉES


Information sur la source

Catégorie :Base de données Niveau : Débutant Date de création : 16/06/2005 Date de mise à jour : 17/06/2005 09:55:41 Vu : 17 031

Note :
7 / 10 - par 3 personnes
7,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (8)
Ajouter un commentaire et/ou une note

Description

Ce code permet de se connecter à une base de données sous Access en php grâce au lien ODBC.
Il permet aussi d'exécuter une requête qui récupére les données dans les champs d'une table et l'affiche dans la
page php ainsi que l'affichage du nom de la table.
La récupération et l'affichage des images est aussi montré et expliqué.

Il faut créer un identifiant DSN pour la table:
Pour cela allez dans : Panneau de config -> (Outils admin pour xp)source de données ODBC -> source de donnée système
ajouter -> pilote Microsoft Access ...(mdb) -> mettre le nom de votre identifiant DSN (dans source de données) puis
sélectionner votre base de données.


 

Source

  • <html>
  • <head>
  • <title>Title here!</title>
  • </head>
  • <body>
  • <?php
  • //connexion à une base de données ACCESS
  • $bd="votre_base_de_données"; // identifiant DSN
  • $user="root"; // login
  • $password=""; // password
  • $cnx = odbc_connect( $bd , $user, $password );
  • if($cnx){
  • $tablelist = odbc_tables($cnx);
  • while (odbc_fetch_row($tablelist)) //tant que c'est pas la fin de la table
  • {
  • if (odbc_result($tablelist, 3) == "TABLE") // Si indicateur TABLE
  • echo odbc_result($tablelist, 3); // Affiche nom de la TABLE
  • }
  • $valeur= odbc_exec( $cnx, "select champ1,champ2,champphoto3 from TABLE" ); //requête
  • while(odbc_fetch_row($valeur)) //tant que c'est pas la fin de la table
  • {
  • echo odbc_result( $valeur, 1 );//ici on affiche la valeur du champ1
  • echo '<br/><br/>';
  • $image = odbc_result($valeur, 3 );//dans votre table mettez le chemin de l'image et son extention dans le champphoto3
  • //on va ainsi stocker dans la variable $image pour l'afficher en dessous
  • echo "<img src=$image width=150 height=150>";
  • echo odbc_result( $valeur, 2 );
  • }
  • }
  • else{
  • echo "Impossible de se connecter à la base de données";
  • }
  • odbc_close( $cnx); // ferme la connexion
  • ?>
  • </body>
  • </html>
 <html>
<head>
       <title>Title here!</title>
</head>
<body>
 <?php
 //connexion à une base de données ACCESS
$bd="votre_base_de_données"; // identifiant DSN
$user="root"; // login
$password=""; // password
$cnx = odbc_connect( $bd , $user, $password );
if($cnx){ 

$tablelist = odbc_tables($cnx);
while (odbc_fetch_row($tablelist)) //tant que c'est pas la fin de la table
{
	if (odbc_result($tablelist, 3) == "TABLE") // Si indicateur TABLE
		echo odbc_result($tablelist, 3); // Affiche nom de la TABLE
}


$valeur= odbc_exec( $cnx, "select champ1,champ2,champphoto3 from TABLE" ); //requête
while(odbc_fetch_row($valeur)) //tant que c'est pas la fin de la table
{
   echo odbc_result( $valeur, 1 );//ici on affiche la valeur du champ1
   echo '<br/><br/>';
   $image = odbc_result($valeur, 3 );//dans votre table mettez le chemin de l'image et son extention dans le champphoto3
   //on va ainsi stocker dans la variable $image pour l'afficher en dessous
   echo "<img src=$image width=150 height=150>";
   echo odbc_result( $valeur, 2 );
   }

}
else{
echo "Impossible de se connecter à  la base de données";
}
odbc_close( $cnx); // ferme la connexion
?>
</body>
</html>

Historique

17 juin 2005 09:55:41 :
modification du <? en <?php mise aux normes de la balise <br> changement de la structure du code qui n'était pas très logique. En tout cas merci à ANTHOMICRO et GARFIELD90 pour leur précieuse aide.

Commentaires et avis

signaler à un administrateur
Commentaire de Anthomicro le 16/06/2005 23:08:53

Salut,

<? est à remplacer par <?php pour des raisons de portabilité, pour le odbc_close() tu peux surement le mettre juste après la requête (en passant par des fetch_row comme tu l'as fait)

Je te mets 7/10 parce que c'est un exemple simple et qui j'espère sera mis à jour pour les quelques petites erreurs ci-dessus.

a ++

signaler à un administrateur
Commentaire de garfield90 le 17/06/2005 08:53:34

Salut,

Tu verifies que ta connexion est faite, si elle n'y est pas tu affiches un message d'erreur, mais le script continue, ce qui n'est pas logique

tu aurais du faire

if ( $cnx){
    //traitement a faire sur la base
}else{
   echo 'impossible de se connecter à la base';
}

Ce qui evites de passer dans les boucles while .

Mets ton script aux normes.
<br> => <br />
...

A part ca, code propre et correctement commenté.

7/10



signaler à un administrateur
Commentaire de Isengard le 17/06/2005 11:59:55

Oui ou alors si tu souhaite que la page soit directement stoppé si la connection à la base marche pas tu met un :
$cnx = odbc_connect( $bd , $user, $password ) or die("La Connection a échoué");

Personellement je prefere faire comme ça, ça évite de laisser trainer un if sur toute la longueur de la page et d'avoir tous les else à la fin du code :)

signaler à un administrateur
Commentaire de GRenard le 17/06/2005 20:10:00

Perso, je n'aime pas faire die... c'est mieux de gérer l'erreur soit même plutôt que de faire "planter" la page avec un die... Il manquerait un @ devant le connect pour pas afficher l'erreur par défaut.

signaler à un administrateur
Commentaire de Isengard le 19/06/2005 10:00:16

Généralement une fois la connection échouée la page plante sur les requetes donc bon ca dépend ce que tu souhaite :)

signaler à un administrateur
Commentaire de nimpor le 27/01/2006 14:23:32

je n'ai rien a dire sur le code qui a l'air tres bien et que je testerai, mais sur les commentaire précédent qui préconise de remplacer le <br> par <br /> pour etre soit disant au norme... <br /> correspond au xhtml et le code ci dessus N'A PAS DE DOCTYPE alors qu'est ce qui vous dis que <br /> serai au norme (vu qu'il n'y en a pas) et si vous voulez du xhtml alors il faud egalement fermer les balise image ! merci de ne pas dire n'importequoi sur les commentaire quand n s'y connai pas ! quand il n'y a pas de doctype (ce qui n'est pas bien!) <br> est aussi valide que <br />...

signaler à un administrateur
Commentaire de Anthomicro le 29/01/2006 15:34:16

Quand y'a pas de doctype tout est invalide donc y'a pas un modèle qu'est aussi valide que l'autre ^^

Sinon je pense qu'ils ont raison en ce qui concerne les commentaires, ils vont pas lui refaire tout le code xhtml (on est sur un site de php) mais il est bon de souligner les quelques erreurs vues. Ensuite si il a a envie de laisser ça crade comme c'est c'est son problème, il aura une note en conséquence :-)

a +

signaler à un administrateur
Commentaire de fnikicha le 29/05/2007 16:57:02

merci bcp pour ce code vraiment c'était trés utile pour moi,merci beaucouuuuuuuuuup,ca marche trés bien

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Janvier 2009
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,343 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.