[PHP]récupérer nom tables
Résolu/Fermé
maxime_B
Messages postés
788
Date d'inscription
mardi 14 juin 2005
Statut
Membre
Dernière intervention
15 juin 2010
-
10 août 2006 à 23:56
horacle - 2 sept. 2009 à 16:24
horacle - 2 sept. 2009 à 16:24
A voir également:
- [PHP]récupérer nom tables
- Recuperer message whatsapp supprimé - Guide
- Recuperer video youtube - Guide
- Comment récupérer un compte facebook piraté - Guide
- Impossible de récupérer mon compte gmail - Guide
- Récupérer mon compte facebook désactivé - Guide
12 réponses
ollie314
Messages postés
145
Date d'inscription
mardi 8 juin 2004
Statut
Membre
Dernière intervention
26 octobre 2007
80
11 août 2006 à 00:09
11 août 2006 à 00:09
bonjour,
je ne sais pas comment tu fais pour effectuer ton opération mais une requête
show tables injecter via mysql_query devait te renvoyer un tableau contenant le nom de toutes les tables de ta base.
Mais cela ne doit pas répondre a ta question. Je pense que cela doit venir de tes requêtes. Il faut une requête spécifique pour extraire les données relatives au schéma de la base (describe, show, ...)
voilà
ollie314
je ne sais pas comment tu fais pour effectuer ton opération mais une requête
show tables injecter via mysql_query devait te renvoyer un tableau contenant le nom de toutes les tables de ta base.
Mais cela ne doit pas répondre a ta question. Je pense que cela doit venir de tes requêtes. Il faut une requête spécifique pour extraire les données relatives au schéma de la base (describe, show, ...)
voilà
ollie314
ollie314
Messages postés
145
Date d'inscription
mardi 8 juin 2004
Statut
Membre
Dernière intervention
26 octobre 2007
80
13 août 2006 à 04:13
13 août 2006 à 04:13
Re, c'est encore encore moi .... :)
Voilà le script (c'est la même chose que lami20j), et chez moi ça marche.
<?php
$host = "localhost";
$user = "root";
$pass = "";
$db_name = "mabdd";
$connect = @mysql_connect($host,$user,$pass);
@mysql_select_db($db_name);
$msg = "";
$query = "SHOW TABLES";
$result = @mysql_query($query);
if(!$result)
{
die('Porbleme lors de la connexion à la base de données');
}
else
{
while($line = @mysql_fetch_array($result))
{
$msg .= "<a href='http://$host/$line[0].php'>".$line[0]."</a>< br />";
}
@mysql_free_result($result);
@mysql_close($connection);
}
?>
<html>
<head><title>..:: test ::..</title></head>
<body>
<?php
echo $msg;
?>
</body>
</html>
verifie la syntaxe, je n'ai pas fait un copier/coller, j'ai retapé donc ....
Modifie aussi le nom de la base de donnée :p.
voilà !!
Bon courage !!!
@++
ollie314
Voilà le script (c'est la même chose que lami20j), et chez moi ça marche.
<?php
$host = "localhost";
$user = "root";
$pass = "";
$db_name = "mabdd";
$connect = @mysql_connect($host,$user,$pass);
@mysql_select_db($db_name);
$msg = "";
$query = "SHOW TABLES";
$result = @mysql_query($query);
if(!$result)
{
die('Porbleme lors de la connexion à la base de données');
}
else
{
while($line = @mysql_fetch_array($result))
{
$msg .= "<a href='http://$host/$line[0].php'>".$line[0]."</a>< br />";
}
@mysql_free_result($result);
@mysql_close($connection);
}
?>
<html>
<head><title>..:: test ::..</title></head>
<body>
<?php
echo $msg;
?>
</body>
</html>
verifie la syntaxe, je n'ai pas fait un copier/coller, j'ai retapé donc ....
Modifie aussi le nom de la base de donnée :p.
voilà !!
Bon courage !!!
@++
ollie314
maxime_B
Messages postés
788
Date d'inscription
mardi 14 juin 2005
Statut
Membre
Dernière intervention
15 juin 2010
55
12 août 2006 à 10:39
12 août 2006 à 10:39
bon alors je vais essayer d'être plus précis...:)
j'aimerais générer un code qui peut me dire toutes les tables présentes dans la base de donees.
si un table existe, alors on récupère le nom de la table, et on crée un lien vers une page, dans le style
en fait ce que j'aimerais, c'est créer un lien si tel tabl existe....
c'est possible???
j'aimerais générer un code qui peut me dire toutes les tables présentes dans la base de donees.
si un table existe, alors on récupère le nom de la table, et on crée un lien vers une page, dans le style
<a href="$nomdetable.php">, pour afficher tout ce qui se trouve dans la table.
en fait ce que j'aimerais, c'est créer un lien si tel tabl existe....
c'est possible???
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
12 août 2006 à 11:22
12 août 2006 à 11:22
Salut,
regarde plus bas dans la page Consultation de la liste des tables
http://www.infres.enst.fr/~danzart/mysql/php.phtml
lami20j
regarde plus bas dans la page Consultation de la liste des tables
http://www.infres.enst.fr/~danzart/mysql/php.phtml
lami20j
maxime_B
Messages postés
788
Date d'inscription
mardi 14 juin 2005
Statut
Membre
Dernière intervention
15 juin 2010
55
12 août 2006 à 15:38
12 août 2006 à 15:38
merci
je viens de regarder et d'essayer, mais impossible de sélectionner le nom de la table qu'on veut.
la varible $mysql_result est celle qui contient renvoi tous les noms. Or impossible de faire un echo de quoi que ce sois l'erreur qui en resort ressemble toujours à ça:
je viens de regarder et d'essayer, mais impossible de sélectionner le nom de la table qu'on veut.
<? // ouverture de la connexion $connexion = mysql_connect('localhost','root',''); // prendre la liste des champs de la table CD de la base CD_test $mysql_result = mysql_query("SHOW TABLES;",$connexion); //prendre chaque rangée while ($ligne = mysql_fetch_row($mysql_result)) { // afficher le nom d'une table echo($ligne[0]),"</p>"; } ?> <?php echo $mysql_result ; ?>
la varible $mysql_result est celle qui contient renvoi tous les noms. Or impossible de faire un echo de quoi que ce sois l'erreur qui en resort ressemble toujours à ça:
Resource id #4
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
>
maxime_B
Messages postés
788
Date d'inscription
mardi 14 juin 2005
Statut
Membre
Dernière intervention
15 juin 2010
12 août 2006 à 15:42
12 août 2006 à 15:42
Re,
c'est normal, il faut adapter à ta situation.
Je ne vois pas que tu te connectes à une base de données quelconque.
$connexion = mysql_connect('localhost','root','')
C'est seulement un connexion à mysql.
Il te faut une ligne de genre
lami20j
c'est normal, il faut adapter à ta situation.
Je ne vois pas que tu te connectes à une base de données quelconque.
$connexion = mysql_connect('localhost','root','')
C'est seulement un connexion à mysql.
Il te faut une ligne de genre
mysql_select_db('CD_test',$connexion);http://fr3.php.net/manual/fr/function.mysql-select-db.php
lami20j
maxime_B
Messages postés
788
Date d'inscription
mardi 14 juin 2005
Statut
Membre
Dernière intervention
15 juin 2010
55
>
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
12 août 2006 à 15:59
12 août 2006 à 15:59
oops excuse...comme tu m'avais proposé un site, je l'ai utilisé, mais j'ai oublié d'adapter le code.. :\
mais en choissisant une bdd particulière, ça ne va toujours pas...
mais en choissisant une bdd particulière, ça ne va toujours pas...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
12 août 2006 à 16:02
12 août 2006 à 16:02
Re,
je ne connais pas php. je travaille avec cgi-perl et le module DBI.
Mais je comprends le code de php. En perl je peux me connecter sans problème (et c'est à peu près la même chose)
Peut être il faut regarder un peu ici. Désolé de ne pas pouvoir faire plus.
https://www.php.net/mysql_query
lami20j
je ne connais pas php. je travaille avec cgi-perl et le module DBI.
Mais je comprends le code de php. En perl je peux me connecter sans problème (et c'est à peu près la même chose)
Peut être il faut regarder un peu ici. Désolé de ne pas pouvoir faire plus.
https://www.php.net/mysql_query
lami20j
maxime_B
Messages postés
788
Date d'inscription
mardi 14 juin 2005
Statut
Membre
Dernière intervention
15 juin 2010
55
12 août 2006 à 17:29
12 août 2006 à 17:29
pas grave, c'est déjà sympa d'avoir essayé de m'aider
merci
merci
ollie314
Messages postés
145
Date d'inscription
mardi 8 juin 2004
Statut
Membre
Dernière intervention
26 octobre 2007
80
12 août 2006 à 21:36
12 août 2006 à 21:36
euh, c'est encore moi ... :)
Pour l'erreur que tu reçois de php, je pense que cela vient du fait que le résultat pointe sur un résultat sql brut, ce qui ne vas pas puisque ce que nous voulons, c'est un resultat sous forme de tableau de type entiers, chaine.
Bon, je vais faire un test chez moi pour faire ce que tu veux. Je t'envoi ça demain. Ca a l'air intéressant.
@++
ollie314
Pour l'erreur que tu reçois de php, je pense que cela vient du fait que le résultat pointe sur un résultat sql brut, ce qui ne vas pas puisque ce que nous voulons, c'est un resultat sous forme de tableau de type entiers, chaine.
Bon, je vais faire un test chez moi pour faire ce que tu veux. Je t'envoi ça demain. Ca a l'air intéressant.
@++
ollie314
maxime_B
Messages postés
788
Date d'inscription
mardi 14 juin 2005
Statut
Membre
Dernière intervention
15 juin 2010
55
13 août 2006 à 00:56
13 août 2006 à 00:56
ok merci c'est sympa...
d'avance merci à vous 3 pour votre aide
a demain
d'avance merci à vous 3 pour votre aide
a demain
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
13 août 2006 à 01:23
13 août 2006 à 01:23
Salut,
seulement à titre d'exemple
Et voila le résultat https://www.cjoint.com/?inbvVrTMvR
Pour les liens il faut encore écrire de code pour pouvoir afficher le contenu des tables.
Et ce que j'ai en ligne de commande pour confirmation
seulement à titre d'exemple
<?php $connexion = mysql_connect('localhost','root','azertyuiop13579'); mysql_select_db('blog',$connexion); $mysql_result = mysql_query("SHOW TABLES;",$connexion); while ($ligne = mysql_fetch_row($mysql_result)){ echo "<a href=\"http://localhost/$ligne[0].php\">$ligne[0]</a></br>"; } ?>
Et voila le résultat https://www.cjoint.com/?inbvVrTMvR
Pour les liens il faut encore écrire de code pour pouvoir afficher le contenu des tables.
Et ce que j'ai en ligne de commande pour confirmation
mysql> use blog; Database changed mysql> show tables; +-----------------+ | Tables_in_blog | +-----------------+ | dc_categorie | | dc_citations | | dc_comment | | dc_connected | | dc_gday | | dc_link | | dc_log | | dc_passcat | | dc_ping | | dc_post | | dc_session | | dc_simpleviewer | | dc_user | +-----------------+ 13 rows in set (0,00 sec) mysql>lami20j
maxime_B
Messages postés
788
Date d'inscription
mardi 14 juin 2005
Statut
Membre
Dernière intervention
15 juin 2010
55
13 août 2006 à 17:10
13 août 2006 à 17:10
merci beaucoup, c'est très sympa
@+
@+
ollie314
Messages postés
145
Date d'inscription
mardi 8 juin 2004
Statut
Membre
Dernière intervention
26 octobre 2007
80
13 août 2006 à 19:31
13 août 2006 à 19:31
ben de rien ...
Si ça marche, pense à signaler que le pb a été résolu ...
@++
ollie314
Si ça marche, pense à signaler que le pb a été résolu ...
@++
ollie314
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
13 août 2006 à 19:40
13 août 2006 à 19:40
Salut à vous deux,
la même chose que ollie314 ;)
lami20j
la même chose que ollie314 ;)
lami20j
Merci bcp ca m'est également très utile ce petit script.
il ne me reste plus qu'à aouter pour chaque table une feuill en php qui affiche les données dans un tableau
et une feuille de mise à jour
allez on y croit :)
il ne me reste plus qu'à aouter pour chaque table une feuill en php qui affiche les données dans un tableau
et une feuille de mise à jour
allez on y croit :)
jisisv
Messages postés
3645
Date d'inscription
dimanche 18 mars 2001
Statut
Modérateur
Dernière intervention
15 janvier 2017
934
12 août 2006 à 04:12
12 août 2006 à 04:12
A partir de MySQL 5 , tu peux interroger la base information_schema
Voir la documentation
https://dev.mysql.com/doc/
Johan
johand@horus:~$ mysql -p information_schema Enter password: <cut/> Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 13 to server version: 5.0.22-Debian_3-log <cut/> mysql> select T.table_name from tables T where T.table_schema='a2a'; +-------------------------+ | table_name | +-------------------------+ | _seq | | _seq_seq | | a2a_contacts | | a2a_dnsid_has_contact | | a2a_domain_has_contact | | a2a_domain_has_nsgroup | | a2a_domains | | a2a_licensee_has_onsite | | a2a_nsgroups | | a2a_ogone_trans | | sites | +-------------------------+ 11 rows in set (0.01 sec) mysql> select table_name, table_type, engine from information_schema.tables where table_schema='a2a' order by table_name desc; +-------------------------+------------+--------+ | table_name | table_type | engine | +-------------------------+------------+--------+ | _seq_seq | BASE TABLE | MyISAM | | _seq | BASE TABLE | MyISAM | | sites | BASE TABLE | MyISAM | | a2a_ogone_trans | BASE TABLE | MyISAM | | a2a_nsgroups | BASE TABLE | InnoDB | | a2a_licensee_has_onsite | BASE TABLE | MyISAM | | a2a_domain_has_nsgroup | BASE TABLE | InnoDB | | a2a_domain_has_contact | BASE TABLE | InnoDB | | a2a_domains | BASE TABLE | InnoDB | | a2a_dnsid_has_contact | BASE TABLE | InnoDB | | a2a_contacts | BASE TABLE | InnoDB | +-------------------------+------------+--------+ 11 rows in set (0.03 sec)
Voir la documentation
https://dev.mysql.com/doc/
Johan
11 août 2006 à 01:07
11 août 2006 à 01:29
pourrais tu préciser un peu ta question. J'imagine que tu veux transmettre le nom des tables à ton script, mais sans le script ça va être tendu ...
ce sont des fonctions, des classes ... ???
enfin, si tu peux préciser donc ...
ollie314
11 août 2006 à 20:52
12 août 2006 à 02:10
<?php
$dbname = 'test';
if (!mysql_connect('localhost', 'root', ''))
{
die("Impossible de se connecter à MySQL");
}
/* on construit une requete qui donne la liste des tables */
$query = "show tables";
/* on execute la requete et on recupère le resultat */
$tables = @mysql_query($query);
/* traitement des erreurs ... */
if (!$tables)
{
echo "Erreur : impossible de lister les bases de données</p>";
echo 'Erreur MySQL : ' . mysql_error();
exit;
}
/* construction d'un tableau indexé de 0 à <nombre_de_resultats> */
while ($line = mysql_fetch_array($tables))
{
/* on place le resultat dans un tableau en indexan sur le rang du resultat (1,2,3, ...) */
$tableList[] = $line[0];
}
/* on libere le resultat */
mysql_free_result($tables);
/* on affiche ensuite la liste des tables */
for($i = 0; $i<count(tableList);$i++)
{
echo tableList[$i];
}
?>
Je ne sais pas si ça marche, je n'ai pas vérifié ne sachant pas si c'est que tu voulais.
@+
ollie314