[php/mysql] Afficher les noms des tables
Résolu
Kopros
Messages postés
595
Date d'inscription
Statut
Membre
Dernière intervention
-
Groarh Messages postés 682 Date d'inscription Statut Membre Dernière intervention -
Groarh Messages postés 682 Date d'inscription Statut Membre Dernière intervention -
Salut,
J'ai une base de données dans laquelle je ne connais pas d'avance le nom de certaines tables (il s'agit de thèmes d'un jeu qu'un admin peut modifier, ajouter...).
Exemples de noms de tables :
theme_classic
theme_geek
theme_chaipakoi
Les utilisateurs doivent pouvoir choisir le thème avec un select.
Comment je peux faire, en php, pour avoir une variable dans une boucle qui contient le nom de chaque table à chaque passage dans la boucle ?
J'ai pensé faire ça :
Mais je sais pas quoi mettre dans le while pour récupérer le nom de ma table.
Je sais même pas si cette requête peut marcher.
Merci de bien vouloir m'éclairer !
EDIT :
Pensez-vous que je dois poser la question sur le forum programmation ?
J'ai une base de données dans laquelle je ne connais pas d'avance le nom de certaines tables (il s'agit de thèmes d'un jeu qu'un admin peut modifier, ajouter...).
Exemples de noms de tables :
theme_classic
theme_geek
theme_chaipakoi
Les utilisateurs doivent pouvoir choisir le thème avec un select.
Comment je peux faire, en php, pour avoir une variable dans une boucle qui contient le nom de chaque table à chaque passage dans la boucle ?
J'ai pensé faire ça :
$sql="show tables"; $req=mysql_query($sql) or die("erreur!"); while ($result=mysql_fetch_array($req)){ }
Mais je sais pas quoi mettre dans le while pour récupérer le nom de ma table.
Je sais même pas si cette requête peut marcher.
Merci de bien vouloir m'éclairer !
EDIT :
Pensez-vous que je dois poser la question sur le forum programmation ?
A voir également:
- [php/mysql] Afficher les noms des tables
- Les noms des animaux - Télécharger - Études & Formations
- Table des matières word - Guide
- Afficher appdata - Guide
- Mysql community server - Télécharger - Bases de données
- Afficher les commentaires word - Guide
3 réponses
Salut,
SHOW TABLES te renvoie une ligne par table, tu auras donc un tableau à un élément à chaque fois. Tu peux faire des bidouillages sympas à base de array_merge ou truc dans le genre. Fais juste gaffe à l'index non numérique "Tables_in_machin", il est écrasé à chaque passage, tu ne dois donc utiliser que les numéros.
Par contre si tu penses que ton post est mieux placé ailleurs c'est certainement en rubrique « base de données » ;)
var_dump($result)ou juste
print_r($result).
SHOW TABLES te renvoie une ligne par table, tu auras donc un tableau à un élément à chaque fois. Tu peux faire des bidouillages sympas à base de array_merge ou truc dans le genre. Fais juste gaffe à l'index non numérique "Tables_in_machin", il est écrasé à chaque passage, tu ne dois donc utiliser que les numéros.
Par contre si tu penses que ton post est mieux placé ailleurs c'est certainement en rubrique « base de données » ;)
Merci de ta réponse, je n'ai pas exactement utilisé de var_dump ni de print_r (c'est la première fois que j'essaie de les utiliser et ça n'a pas marché).
Par contre le fait que tu m'ais dit que le SHOW TABLES renvoit une ligne par table m'a mis sur la voie : au début je cherchais avec les array_merge, j'ai compris le principe et le fonctionnement mais ça m'a paru un p'tit peu compliqué...
Ensuite, vu que tu m'as dit qu'il n'y a qu'un seul élément à chaque fois, je me suis dit que ce n'était pas la peine d'utiliser un mysql_fetch_array, je me suis orienté vers un mysql_fetch_row.
Et là, miracle ! Ca marche !!
Donc voilà mon bout de code qui permet d'afficher toutes les tables de la base courante :
Il ne me reste plus qu'à traiter $ligne[0] pour voir si elle contient le nom d'un thème (ça je sais faire, étant donné que tous les noms commencent pareil).
Un grand merci à toi Groarh pour m'avoir mis sur la voie !
PS : En effet j'aurais mieux fait de poster dans la rubrique "Bases de données". Je sais pas pourquoi je ne l'ai jamais remarquée auparavant.
Par contre le fait que tu m'ais dit que le SHOW TABLES renvoit une ligne par table m'a mis sur la voie : au début je cherchais avec les array_merge, j'ai compris le principe et le fonctionnement mais ça m'a paru un p'tit peu compliqué...
Ensuite, vu que tu m'as dit qu'il n'y a qu'un seul élément à chaque fois, je me suis dit que ce n'était pas la peine d'utiliser un mysql_fetch_array, je me suis orienté vers un mysql_fetch_row.
Et là, miracle ! Ca marche !!
Donc voilà mon bout de code qui permet d'afficher toutes les tables de la base courante :
$sql="show tables;"; $result = mysql_query($sql); while ($ligne = mysql_fetch_row($result)){ echo($ligne[0]),"<br />"; }
Il ne me reste plus qu'à traiter $ligne[0] pour voir si elle contient le nom d'un thème (ça je sais faire, étant donné que tous les noms commencent pareil).
Un grand merci à toi Groarh pour m'avoir mis sur la voie !
PS : En effet j'aurais mieux fait de poster dans la rubrique "Bases de données". Je sais pas pourquoi je ne l'ai jamais remarquée auparavant.