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';
?>
8 Réponses :
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. P>
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]; } code>
De plus, je pense que la syntaxe SQL peut être un peu désactivée comme mentionné ailleurs - éliminez tout sur les crochets
Les requêtes doivent ressembler à:
SHOW TABLES SHOW TABLES FROM mydatabase SHOW TABLES FROM mydatabase LIKE "tab%"
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> 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.
}
users user_pictures mac_users
Les supports couramment utilisés dans la documentation MySQL pour des exemples doivent être envoyés sur une "vraie" requête. P>
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. P>
Pour les personnes qui utilisent instructions PDO
$query = $db->prepare('show tables');
$query->execute();
while($rows = $query->fetch(PDO::FETCH_ASSOC)){
var_dump($rows);
}
Bien sûr, vous pouvez interroger votre base de données avec php a une fonction intégrée pour répertorier toutes les tables dans une matrice pour vous: P>
mysql_list_tables - Vous pouvez trouver plus d'informations à ce sujet à La page API PHP p>
blockQuote> Afficher les tables CODE>, puis en boucle via tous les enregistrements, mais c'est des lignes de code supplémentaires et du travail. P>
Cette fonction maintenant complètement supprimée.
// LIST_TABLE signifie la base de données Toutes les table
$tables = $this->db->list_tables();
foreach ($tables as $table)
{
echo $table;
}
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