afficher certaines tables de la base

Répondre
fausto
le 09/06/2009 à 19:25
fausto
Bonjour,

Je souhaiterais afficher les tables de ma base, sauf certaines.
J'essaie avec la commande :

$sql = "SHOW TABLES FROM $dbname";

mais je ne sais pas comment lui dire en gros : "affiche toutes les tables sauf celle-ci et celle-là"

Si quelqu'un a une idée

Merci

fausto
fausto
le 10/06/2009 à 15:14
fausto
merci

mais je dois évincer une table de ma liste (liste qui devient un menu déroulant)
menu qui est amené à changer sans que j'intervienne .

Donc, je ne peux pas faire une requête du style : "affiche les tables a, b et d"
mais une requête du style : "affiche toutes les tables, SAUF la table 'c' "

En fait je n'arrive pas à trouver la requête MySQL qui serait "l'inverse" de celle-ci :

$sql = "SHOW TABLES FROM $dbname  LIKE 'nom_table'";


là pas de soucis, j'affiche bien la table 'nom_table'
je voudrais afficher toutes les tables SAUF 'nom_table'

Merci encore

Fausto
fausto
le 10/06/2009 à 15:53
fausto
Yo!

j'ai trouvé une solution qui n'est sûrement pas optimale mais bon -->

$sql = "SHOW TABLES FROM $dbname";
$result = mysql_query($sql);


if (!$result) {
echo "Erreur DB, impossible de lister les tables\n";
echo 'Erreur MySQL : ' . mysql_error();
exit;
}

echo '<select name="choix"><option>Classer par ...</option>';
while ($row = mysql_fetch_row($result)) {

// ON MASK LES TABLES ADÉQUATES

if(($row[0] != 'table_a_masquer') AND ($row[0] != 'table2_a_masquer')) {

echo "<option>{$row[0]}</option>";
}
}
echo '</select>';

mysql_free_result($result);
?>


Voilà !

Fausto
LupusMic
le 11/06/2009 à 21:52
LupusMic
Parfois la documentation suffit à répondre à une question :)

Mais ici, c'est un peu plus délicat. Pour accéder pleinement au schéma d'une base de données, il suffit d'interroger la base mysql (si tu as le droit), ou la base virtuelle des
schéma MySQL.
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours