Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2800 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  SQL/PHP et Base de données Access

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

SQL/PHP et Base de données Access

n°1107213
Mythrandil
Posté le 03-06-2005 à 16:24:47  profilanswer
 

Bonjour a tous,
j'aimerais développer un site de consultation d'une base de données concernant la location de logements. Cette base de données est au format Access.
 
Comment se connecter en PHP a une base de données Access ?
J'aimerais, je le précise, que cela marche en utilisant Easy PHP, je ne suis en effet pas dans la capacité de travailler sur serveur web pour mes tests de requêtes etc...
 
Voilà.
Je vous avouerai que j'ai essayé de nombreuses choses et je n'arrive pas à m'en sortir.
Il faut à priori utiliser la fonction odbc_connect mais je ne sais pas avec quels parametres.


Message édité par Mythrandil le 03-06-2005 à 17:37:06
mood
Publicité
Posté le 03-06-2005 à 16:24:47  profilanswer
 

n°1107220
dedefou
Allias Fiddelcastor
Posté le 03-06-2005 à 16:26:09  profilanswer
 

il faut faire un driver odbc aussi regarde dans outils d administration dasn le panneau de configuration

n°1107235
Mythrandil
Posté le 03-06-2005 à 16:30:18  profilanswer
 

J'ai installé ma base de données comme dit sur de nombreus sites (mis en place le driver via outils d'administration)
 
Il semblerait qu'en modifiant deux trois trucs, j'ai pu me connecter a ma base.
 
Cependant, lors de l'exécution d'une requete, j'ai ce message d'erreur.
 
Warning: odbc_do(): SQL error: [Microsoft][Pilote ODBC Microsoft Access] Trop peu de paramètres. 7 attendu., SQL state 07001 in SQLExecDirect in c:\program files\easyphp1-8\www\logement\results.php on line 149

n°1107239
cesarr89
Posté le 03-06-2005 à 16:31:36  profilanswer
 

Bah l'erreur est claire pourtant, visiblement il manque des paramètres.

n°1107240
dedefou
Allias Fiddelcastor
Posté le 03-06-2005 à 16:31:37  profilanswer
 

arf j'ai deja eu cette erreur mais pour un driver excel en faite j'avais mal ecrire ma requete les champs ete faux .... regarde la tienne sinon je ne sais pas

n°1107242
plainsofpa​in
Pingouino's lover
Posté le 03-06-2005 à 16:31:49  profilanswer
 

Donnes nous le code s'il te plait, nous ne sommes pas devins.  
 
On pourra peut-etre t'aider mieux ^^


---------------
http://www.alsacreations.com , http://www.openweb.eu.org. Mon CV : http://cv.roane-irkana.net/. Exemple à ne surtout pas suivre : www.worldinternet.be
n°1107252
Mythrandil
Posté le 03-06-2005 à 16:35:38  profilanswer
 

Je vais pas donner le code pour une raison simple ...
 
J'ai testé avec une requete toute simple "Select * from table" et la ca marche ... donc comme dit dedefou, ma requete est pourrie ^^

n°1107256
cesarr89
Posté le 03-06-2005 à 16:36:47  profilanswer
 

Mythrandil a écrit :

Je vais pas donner le code pour une raison simple ...
 
J'ai testé avec une requete toute simple "Select * from table" et la ca marche ... donc comme dit dedefou, ma requete est pourrie ^^


 
Tu veux pas qu'on t'aide? :??:


Message édité par cesarr89 le 03-06-2005 à 16:36:58
n°1107270
Mythrandil
Posté le 03-06-2005 à 16:41:40  profilanswer
 

En gros, le probleme principal que j'ai est celui ci. Les noms de colonnes de ma BD sont mal foutus.
Je m'explique, tous contiennent des espaces et/ou des accents, ce qui fait que c'est compliqué pour une requete.
 
Ensuite, je viens de comprendre pourquoi l'erreur demandait 7 parametres, c'est à cause de ce que j'ai cité précédement, ayant du mal taper mes requetes (a cause de ces problemes d'espacement probablement) il me demande des parametres.
 
Voila tout.  
Savez vous donc comment gérer les noms de colonnes avec espace dans une BD Access ?

n°1107279
cesarr89
Posté le 03-06-2005 à 16:43:38  profilanswer
 

Pourquoi tu as mis des accents et des espaces?

mood
Publicité
Posté le 03-06-2005 à 16:43:38  profilanswer
 

n°1107280
Mythrandil
Posté le 03-06-2005 à 16:43:59  profilanswer
 

C'est pas moi ... je récupère la table ainsi et ne peux la modifier.

n°1107284
cesarr89
Posté le 03-06-2005 à 16:45:10  profilanswer
 

Tu mets un alias dessus.

n°1107289
Mythrandil
Posté le 03-06-2005 à 16:48:06  profilanswer
 

Bonne idée ... comment exactement ?

n°1107294
cesarr89
Posté le 03-06-2005 à 16:49:06  profilanswer
 

Alors là par contre je sais pas

n°1107297
betsamee
Asterisk Zeperyl
Posté le 03-06-2005 à 16:51:38  profilanswer
 

mets le nom des tes tables dans des []

n°1107304
Mythrandil
Posté le 03-06-2005 à 16:57:38  profilanswer
 

merci betsamee, c'est ce qui me manquait.
 
Par contre, j'ai quelques problèmes à résoudre avec les jointures et je vais donc m'y atteler de ce pas.
 
Merci à tous pour vos conseils.

n°1107309
cesarr89
Posté le 03-06-2005 à 16:59:18  profilanswer
 

De rien.

n°1107325
Mythrandil
Posté le 03-06-2005 à 17:06:13  profilanswer
 

Bon en fait j'ai encore une erreur .... et je vous avoue que je comprend difficilement ou est ce qu'elle se trouve la.
 
Je prend ma requete générée par mon script PHP :

Code :
  1. select nom, prenom,[rue pro],[ville pro],[codepost pro],tel_res, tel_bur, rue, ville, cpostal,[Numéro log], [Numéro det] from adr_logement, proprietaire, detail where proprietaire.[Numéro prop]=adr_logement.Proprietaire_Numéro and adr_logement.[Numéro log]= Detail.Adr_logement_Numéro and Detail.Prix<1000 and Detail.Fréquence="Mois" and grandeur="1 1/2" and Detail.[Type de Chambre]="Avec permis de cuisine" and Detail.[Durée du bail]="10 mois";


 
Je l'exécute donc avec la fonction odbc_do :

Code :
  1. $result = odbc_do($conn,$req_select_proprio_et_adresse);


 
$conn étant ma connexion vers la BD déclarée par :

Code :
  1. $conn = odbc_connect($base_de_donnees,$user,$password);


 
Cela me retourne l'erreur :

Code :
  1. Warning: odbc_do(): SQL error: [Microsoft][Pilote ODBC Microsoft Access] Trop peu de paramètres. 4 attendu., SQL state 07001 in SQLExecDirect in c:\program files\easyphp1-8\www\logement\results.php on line 150


 
Je copie colle ma requete, je l'exécute sous Access. Aucune erreur.
Quels sont les deux paramètres manquant ? Comment doit on paramettre la fonction odbc_do ?

n°1107333
cesarr89
Posté le 03-06-2005 à 17:08:52  profilanswer
 

C'est quoi les truc entre [] dans le select? je dis bien dans le select, pas dans le from.
c'est quoi ca :  Detail.[Durée du bail]="10 mois" ??
Mettre une durée en Char ?

n°1107335
cesarr89
Posté le 03-06-2005 à 17:09:08  profilanswer
 
n°1107337
Mythrandil
Posté le 03-06-2005 à 17:10:42  profilanswer
 

cesarr89 a écrit :

C'est quoi les truc entre [] dans le select?


 
Des données que je souhaites récupérer dans la table dont le nom contient des espaces. (voir messages ci dessus)
 

cesarr89 a écrit :


c'est quoi ca :  Detail.[Durée du bail]="10 mois" ??
Mettre une durée en Char ?


 
Je n'ai pas créé cette base de données qui, il faut le dire, est completement bancale. Si la durée est en char, c'est qu'elle peut être de 10 mois ou de 10 - 12 mois ou négociable, etc...

n°1107344
cesarr89
Posté le 03-06-2005 à 17:12:27  profilanswer
 

Mythrandil a écrit :

Des données que je souhaites récupérer dans la table dont le nom contient des espaces. (voir messages ci dessus)


 On a le droit de faire select TABLE from .... ???

Mythrandil a écrit :


Je n'ai pas créé cette base de données qui, il faut le dire, est completement bancale. Si la durée est en char, c'est qu'elle peut être de 10 mois ou de 10 - 12 mois ou négociable, etc...


Mouais  

n°1107350
Mythrandil
Posté le 03-06-2005 à 17:13:38  profilanswer
 

cesarr89 a écrit :

On a le droit de faire select TABLE from .... ???


 
Je me suis mal exprimé... Nom de colonnes évidemment.

n°1107356
cesarr89
Posté le 03-06-2005 à 17:14:53  profilanswer
 

Ah ok, putain, ils pouvaient pas mettre des '_' plutôt que des espaces?
Bah sinon dsl je sais pas d'où ca vient

n°1107368
Mythrandil
Posté le 03-06-2005 à 17:18:14  profilanswer
 

Dis ça au tocard qui a créé cette table aux jointures mal faites, aux noms de colonnes fantaisistes et à la structure mal définie...

n°1107385
Mythrandil
Posté le 03-06-2005 à 17:24:38  profilanswer
 

Comme l'erreur vient je pense des jointures et du nom qui leur a été donné dans la base, j'ai tenté une variante pour ma requete.

Code :
  1. select nom, prenom,[rue pro],[ville pro],[codepost pro],tel_res, tel_bur, rue, ville, cpostal,[Numéro log], [Numéro det] from proprietaire INNER JOIN (Adr_logement INNER JOIN Detail ON Adr_logement.[Numéro log] = Detail.Adr_logement_Numéro) ON Proprietaire.[Numéro prop] = Adr_logement.Proprietaire_Numéro where Detail.Prix<1000 and Detail.Fréquence="Mois" and grandeur="1 1/2" and Detail.[Type de Chambre]="Avec permis de cuisine" and Detail.[Durée du bail]="10 mois";


 
Cela me retourne toujours la même erreur :
 

Code :
  1. Warning: odbc_exec(): SQL error: [Microsoft][Pilote ODBC Microsoft Access] Trop peu de paramètres. 4 attendu., SQL state 07001 in SQLExecDirect in c:\program files\easyphp1-8\www\logement\results.php on line 151


 
Ci joint le schéma relationnel de la table ça peut aider.
http://thoraden.free.fr/loge/table.jpg


Message édité par Mythrandil le 03-06-2005 à 17:36:18
n°1107576
Arjuna
Aircraft Ident.: F-MBSD
Posté le 03-06-2005 à 19:41:17  profilanswer
 

Remplace les " par des ' et ça devrait marcher.
 
Sinon, le [], c'est la façon de Microsoft d'échapper le nom des éléments non conformes au SQL. Sous Oracle, ce serait des ".

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  SQL/PHP et Base de données Access

 

Sujets relatifs
[PHP] Lire en permanence un champ d'une bdd mysql[Access 2003] certaines propriétés ou méthode ne fonctionne pas !!
[VBA-ACCESS] Rafraîchissement d'un formulaireCreer une interface pour une base de données sous access
[PHP] Script de conversion vers csv[XML/PHP] InfoPath et PHP ?
Comment extraire des données de SQL Server via Excel Vba???? 
Plus de sujets relatifs à : SQL/PHP et Base de données Access


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR