Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & ODBC
PHP & ODBC Forum d'entraide sur ODBC avec PHP. Avant de poster -> FAQ ODBC
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/10/2003, 11h37   #1
Invité de passage
 
Inscription : août 2003
Messages : 5
Détails du profil
Informations forums :
Inscription : août 2003
Messages : 5
Points : 2
Points : 2
Par défaut Intranet en PHP : Lister les tables d'une base Access

Bonjour je développe un intranet en php et je n'arrive pas à lister les tables de la base ACCESS, le SHOW TABLES de SQL ne fonctionne pas.

Il y aurrait-il une solution?

merci d'avance!
fblouet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/10/2003, 13h37   #2
Rédacteur

 
Inscription : septembre 2002
Messages : 1 591
Détails du profil
Informations personnelles :
Âge : 36

Informations forums :
Inscription : septembre 2002
Messages : 1 591
Points : 3 108
Points : 3 108
Par défaut lister les tables

c'est plutôt un problème PHP ça, pas access! Je suppose que tu te connectes à ta bd access via odbc. Si tel est le cas, voici le code:


Code :
1
2
3
4
5
6
7
8
<?
$conn=odbc_connect("ExtranetAdmin","","");
$res=odbc_tables($conn) or die(odbc_error());
while($row=odbc_fetch_row($res)){
    echo odbc_result($res,"TABLE_NAME")."<br>";
}
 
?>
stephane eyskens est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/10/2003, 13h39   #3
Rédacteur

 
Inscription : septembre 2002
Messages : 1 591
Détails du profil
Informations personnelles :
Âge : 36

Informations forums :
Inscription : septembre 2002
Messages : 1 591
Points : 3 108
Points : 3 108
Par défaut Re: lister les tables

Citation:
Envoyé par stephaneey
c'est plutôt un problème PHP ça, pas access! Je suppose que tu te connectes à ta bd access via odbc. Si tel est le cas, voici le code:


Code :
1
2
3
4
5
6
7
8
<?
$conn=odbc_connect("ExtranetAdmin","","");
$res=odbc_tables($conn) or die(odbc_error());
while($row=odbc_fetch_row($res)){
    echo odbc_result($res,"TABLE_NAME")."<br>";
}
 
?>
oui évidement, tu remplaces "ExtranetAdmin" par ton dsn.
stephane eyskens est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/10/2003, 13h45   #4
Membre actif
 
Avatar de MashiMaro
 
Inscription : février 2003
Messages : 180
Détails du profil
Informations forums :
Inscription : février 2003
Messages : 180
Points : 158
Points : 158
Code :
1
2
3
SELECT name
FROM MSysObjects
WHERE type in (1,6)
type=1 : pour les tables créées dans ACCESS.
type=6 : tables externes à la base et qui sont liées.

NB : dans ce résultat, les tables systèmes sont incluses. Il faut donc regarder dans MSysObjects un peu le contenu pour virer les tables systèmes.
__________________
MashiMaro

L'homme sage apprend de ses erreurs, l'homme très sage apprend des erreurs des autres.
MashiMaro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/10/2003, 14h32   #5
Invité de passage
 
Inscription : août 2003
Messages : 5
Détails du profil
Informations forums :
Inscription : août 2003
Messages : 5
Points : 2
Points : 2
Ouhaaaa merciii!!!

Bon ca marche presque! le seul probleme est que Apache n'est pas très content dans les deux cas! j'ai le message d'erreur suivant ds la première solution:

The memory could not be "read".

et il m'affiche les tables plus d'autres choses

et pour la seconde:

Code :
Warning: SQL error: [Microsoft][ODBC Microsoft Access Driver] Record(s) cannot be read; no read permission on 'MSysObjects'.,
sans rien afficher.
fblouet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/10/2003, 14h35   #6
Membre actif
 
Avatar de MashiMaro
 
Inscription : février 2003
Messages : 180
Détails du profil
Informations forums :
Inscription : février 2003
Messages : 180
Points : 158
Points : 158
Citation:
Envoyé par fblouet
et pour la seconde:

Code :
Warning: SQL error: [Microsoft][ODBC Microsoft Access Driver] Record(s) cannot be read; no read permission on 'MSysObjects'.,
sans rien afficher.
Je crois que le message est explicite. Est ce que tu as mis des login et pass sur ta BDD ?
__________________
MashiMaro

L'homme sage apprend de ses erreurs, l'homme très sage apprend des erreurs des autres.
MashiMaro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/10/2003, 14h42   #7
Invité de passage
 
Inscription : août 2003
Messages : 5
Détails du profil
Informations forums :
Inscription : août 2003
Messages : 5
Points : 2
Points : 2
en faisant des recherche sur internet, j'ai trouvé la solution, enfin une solution qui fonctionne bien chez moi.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$conn = odbc_connect("client","root","",SQL_CUR_USE_DRIVER);
 
// Liste des tables
$tablelist = odbc_tables($conn);
 
echo "<table>";
while (odbc_fetch_row($tablelist)){
if (odbc_result($tablelist, 4) == "TABLE"){
							$nom = odbc_result($tablelist, 3);
 
							echo "<tr><td>".$nom."</td></tr>";
}
}
echo "</table>";
merci pour votre aide, sinon non je n'avais pas oublié le login et le pass
mais à quoi sert SQL_CUR_USE_DRIVER?


je viens de résoudre une erreur, l'absence de odbc_close($conn); en était la cause.[/i]
fblouet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/10/2003, 14h46   #8
Membre actif
 
Avatar de MashiMaro
 
Inscription : février 2003
Messages : 180
Détails du profil
Informations forums :
Inscription : février 2003
Messages : 180
Points : 158
Points : 158
A vue de nez, ca doit être un variable systeme qui contient le type de driver sql en cours d'utilisation.
__________________
MashiMaro

L'homme sage apprend de ses erreurs, l'homme très sage apprend des erreurs des autres.
MashiMaro est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h54.


 
 
 
 
Partenaires

Hébergement Web