10
votes

Affichage de tous les noms de table dans PHP à partir de la base de données MySQL

D'accord, alors je suis assez nouveau à PHP et SQL / MySQL, donc toute aide est appréciée.

Je me sens comme si j'avais pris la bonne approche. J'ai cherché php.net pour "MySQL Afficher tous les noms de table", il a renvoyé une méthode obsolète et suggérée à l'aide d'une requête MySQL sur Afficher les tables [à partir de db_name] [comme "modèle"] code> Je ne sais pas Quel "modèle" signifie mais j'ai cherché "SQL Wildcard" et obtenu le symbole "%". Selon tout ce que j'ai trouvé, cela devrait fonctionner et produire les noms de table à la fin, mais ce n'est pas le cas. Aucune suggestion? Merci d'avance. P>

<?php
if ($_REQUEST["username"]=="coke"&&$_REQUEST["password"]=="pepsi"){
echo 'You have successfully logged in.';
echo '<br />';
echo 'These are your tables:';
echo '<br />';

   $link = mysql_connect("sql2.njit.edu", "username", "password");

   mysql_select_db("db_name") or die(mysql_error());

   $result = mysql_query('SHOW TABLES [FROM db_name] [LIKE '%']');
   echo $result;
}
else
echo 'You did not provide the proper authentication';
?>


0 commentaires

8 Réponses :


0
votes

Vous devez affecter la variable MySQL_Query à une variable (par exemple, $ Résultat), puis afficher cette variable car vous le résulteriez de la base de données.


3 commentaires

Cela n'a pas fonctionné. D'autres suggestions? Mise à jour ma question pour montrer les modifications que vous avez suggérées.


Vous devez faire boucle $ résultat car vous seriez un ensemble de résultats normal: tandis que ($ rang = mysql_fetch_array ($ résultat, mysql_num)) {echo $ rangée [0]; }


De plus, je pense que la syntaxe SQL peut être un peu désactivée comme mentionné ailleurs - éliminez tout sur les crochets



1
votes

Les requêtes doivent ressembler à:

SHOW TABLES

SHOW TABLES FROM mydatabase

SHOW TABLES FROM mydatabase LIKE "tab%"


0 commentaires

45
votes

Les crochets de votre code sont utilisés dans la documentation MySQL pour indiquer des groupes de paramètres facultatifs. Ils ne devraient pas être dans la requête réelle.

La seule commande que vous avez réellement besoin est la suivante: p> xxx pré>

Si vous voulez des tables dans une base de données spécifique, disons la base de données "livres", alors ce serait p >

$result = mysql_query("show tables"); // run the query and assign the result to $result
while($table = mysql_fetch_array($result)) { // go through each row that was returned in $result
    echo($table[0] . "<BR>");    // print the table that was returned on that row.
}


0 commentaires

1
votes
users
user_pictures
mac_users

0 commentaires

1
votes

Les supports couramment utilisés dans la documentation MySQL pour des exemples doivent être envoyés sur une "vraie" requête.

Il n'apparaît pas non plus que vous avez écho à la recherche de la requête MySQL n'importe où. mySQL_Query renvoie une ressource mysql sur le succès. La page manuelle PHP inclut également des instructions sur la manière de charger la ressource de résultat MySQL dans une matrice pour l'écho et d'autres manipulations.


0 commentaires

12
votes

Pour les personnes qui utilisent instructions PDO

$query = $db->prepare('show tables');
$query->execute();

while($rows = $query->fetch(PDO::FETCH_ASSOC)){
     var_dump($rows);
}


0 commentaires

0
votes

Bien sûr, vous pouvez interroger votre base de données avec Afficher les tables , puis en boucle via tous les enregistrements, mais c'est des lignes de code supplémentaires et du travail.

php a une fonction intégrée pour répertorier toutes les tables dans une matrice pour vous:

mysql_list_tables - Vous pouvez trouver plus d'informations à ce sujet à La page API PHP


1 commentaires

Cette fonction maintenant complètement supprimée.



0
votes

// LIST_TABLE signifie la base de données Toutes les table

$tables = $this->db->list_tables();
foreach ($tables as $table)
{
  echo $table;
}


2 commentaires

Si vous voulez répondre à une question d'âge, veuillez expliquer comment votre réponse est meilleure que les réponses déjà énumérées ou la manière dont la langue a changé pour permettre votre réponse quand ce n'est pas le cas.


list_tables signifie la base de données de tous les tableaux