[MySQL] SHOW TABLE avec condition
Résolu/Fermé
trixxis
Messages postés
12
Date d'inscription
lundi 21 mai 2012
Statut
Membre
Dernière intervention
22 juin 2012
-
21 juin 2012 à 12:19
trixxis Messages postés 12 Date d'inscription lundi 21 mai 2012 Statut Membre Dernière intervention 22 juin 2012 - 22 juin 2012 à 14:45
trixxis Messages postés 12 Date d'inscription lundi 21 mai 2012 Statut Membre Dernière intervention 22 juin 2012 - 22 juin 2012 à 14:45
A voir également:
- [MySQL] SHOW TABLE avec condition
- Table ascii - Guide
- Table des matières word - Guide
- Excel cellule couleur si condition texte - Guide
- Show key plus - Télécharger - Utilitaires
- Telecharger usb show - Télécharger - Sauvegarde
11 réponses
trixxis
Messages postés
12
Date d'inscription
lundi 21 mai 2012
Statut
Membre
Dernière intervention
22 juin 2012
21 juin 2012 à 15:13
21 juin 2012 à 15:13
up!
Salut.
Si vous avez déjà fait la validation des rapports, avec un booleen il suffit de rajouter à la validation "true" ou "false" dans le champ "est_valider" (avec une requete update par exemple : update nomtable set est_valide = true where ...) mais je pense que je ne comprends pas vraiment votre problème.
Si vous avez déjà fait la validation des rapports, avec un booleen il suffit de rajouter à la validation "true" ou "false" dans le champ "est_valider" (avec une requete update par exemple : update nomtable set est_valide = true where ...) mais je pense que je ne comprends pas vraiment votre problème.
trixxis
Messages postés
12
Date d'inscription
lundi 21 mai 2012
Statut
Membre
Dernière intervention
22 juin 2012
22 juin 2012 à 09:14
22 juin 2012 à 09:14
merci de ta réponse
mon probleme avec le boolean c'est le show table
je ne sais pas comment faire ma requete d'affichage de rapport qui on est_valider == 1;
pour le moment j'utilise cette requete:
$mysql_result = mysql_query("SHOW TABLES;",$connexion);
while ($ligne = mysql_fetch_row($mysql_result))
{
echo "<option>$ligne[0]</option>";
}
qui me retourne le nom de toute les tables de ma base mais moi je cherche a afficher juste les tables avec mon boolean a 1
mon probleme avec le boolean c'est le show table
je ne sais pas comment faire ma requete d'affichage de rapport qui on est_valider == 1;
pour le moment j'utilise cette requete:
$mysql_result = mysql_query("SHOW TABLES;",$connexion);
while ($ligne = mysql_fetch_row($mysql_result))
{
echo "<option>$ligne[0]</option>";
}
qui me retourne le nom de toute les tables de ma base mais moi je cherche a afficher juste les tables avec mon boolean a 1
Utilisateur anonyme
22 juin 2012 à 09:33
22 juin 2012 à 09:33
Bonjour
juste les tables avec mon boolean a 1 Une table ne contient pas un booleen, mais un champ de type booleen. Et si ta table a plusieurs lignes, ce qui doit être le cas en général, laquelle faut-il prendre en compte ? Et si elles ont toutes la même valeur sur ce champ, n'as-tu pas l'impression d'un gaspillage ?
Il m'aurait semblé tellement plus simple de créer une table des tables validées, et d'écrire dedans le nom de chaque table lors de sa validation.
juste les tables avec mon boolean a 1 Une table ne contient pas un booleen, mais un champ de type booleen. Et si ta table a plusieurs lignes, ce qui doit être le cas en général, laquelle faut-il prendre en compte ? Et si elles ont toutes la même valeur sur ce champ, n'as-tu pas l'impression d'un gaspillage ?
Il m'aurait semblé tellement plus simple de créer une table des tables validées, et d'écrire dedans le nom de chaque table lors de sa validation.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
trixxis
Messages postés
12
Date d'inscription
lundi 21 mai 2012
Statut
Membre
Dernière intervention
22 juin 2012
22 juin 2012 à 10:28
22 juin 2012 à 10:28
merci pour ce cours d'informatique
je vais répéter a quoi ressemble ba BDD
En gros j'ai une base de donnée par année et chaque table correspond a un client.
Chaque table contient une seul et même ligne avec des dizaines de variable.
Je suis d'accord que sa parait pas du tout optimisé mais je dois optimisé un projet déjà fait sans bouger la BDD.
donc ma question est simple:
je compte mette un champ est_validé qui est un booléen
j'aimerai connaitre la ligne de commande permettant d'afficher toute les tables dont est_validé==1
je vais répéter a quoi ressemble ba BDD
En gros j'ai une base de donnée par année et chaque table correspond a un client.
Chaque table contient une seul et même ligne avec des dizaines de variable.
Je suis d'accord que sa parait pas du tout optimisé mais je dois optimisé un projet déjà fait sans bouger la BDD.
donc ma question est simple:
je compte mette un champ est_validé qui est un booléen
j'aimerai connaitre la ligne de commande permettant d'afficher toute les tables dont est_validé==1
Utilisateur anonyme
22 juin 2012 à 11:04
22 juin 2012 à 11:04
je vais répéter a quoi ressemble ba BDD
Il me semble qu'il n'avait jamais été dit qu'il n'y avait qu'une seule ligne par table. C'était pour tant une donnée intéressante, car cette structure est originale. Pour être tout à fait honnête, elle me semble même aberrante, mais après tout, je ne connais pas le fond de ton problème, c'est toi qui vois...
En tous cas, la requête SHOW TABLES n'admet aucune option permettant de tester le contenu de la table.
Mais il suffit de tester ton champ pour savoir :
$mysql_result = mysql_query("SHOW TABLES;",$connexion);
Evidemment, c'est lourd, mais avec ta structure, je ne vois pas comment l'éviter. Si, en utilisant PDO et une requête préparée, ça allègera un peu le boulot de mysql
Il me semble qu'il n'avait jamais été dit qu'il n'y avait qu'une seule ligne par table. C'était pour tant une donnée intéressante, car cette structure est originale. Pour être tout à fait honnête, elle me semble même aberrante, mais après tout, je ne connais pas le fond de ton problème, c'est toi qui vois...
En tous cas, la requête SHOW TABLES n'admet aucune option permettant de tester le contenu de la table.
Mais il suffit de tester ton champ pour savoir :
$mysql_result = mysql_query("SHOW TABLES;",$connexion);
while ($ligne = mysql_fetch_row($mysql_result)) { $table=$ligne[0]; // je n'ai pas vérifié, je suppose que c'est bien ce champ qui contient le nom de ta table $req= 'SELECT count(*) cnt FROM '.$table.' WHERE est_valide'; $rep=mysql_query($req); $ll=mysql_fetch_array($rep); if ($ll['cnt']>0) echo "<option>$ligne[0]</option>"; }
Evidemment, c'est lourd, mais avec ta structure, je ne vois pas comment l'éviter. Si, en utilisant PDO et une requête préparée, ça allègera un peu le boulot de mysql
trixxis
Messages postés
12
Date d'inscription
lundi 21 mai 2012
Statut
Membre
Dernière intervention
22 juin 2012
22 juin 2012 à 11:31
22 juin 2012 à 11:31
merci pour ta réponse et dsl de la mienne qui etait un peu froide
je suis d'accord avec toi pour la structure de la base de donnée surtout quand on sais que une ligne contient 545 champs...
Mais le tous semble fonctionné donc mes patrons veulent pas changer
merci encore
je suis d'accord avec toi pour la structure de la base de donnée surtout quand on sais que une ligne contient 545 champs...
Mais le tous semble fonctionné donc mes patrons veulent pas changer
merci encore
Utilisateur anonyme
22 juin 2012 à 11:44
22 juin 2012 à 11:44
Ils ne veulent pas changer, mais ils veulent quand même optimiser l'application, et toi tu as bien ajouté un champ. Bon, je renonce à comprendre.
Si la solution que je te propose répond au problème, peux-tu passer le sujet en résolu, ou alors préciser ce qui ne va pas ?
Si la solution que je te propose répond au problème, peux-tu passer le sujet en résolu, ou alors préciser ce qui ne va pas ?
trixxis
Messages postés
12
Date d'inscription
lundi 21 mai 2012
Statut
Membre
Dernière intervention
22 juin 2012
22 juin 2012 à 12:26
22 juin 2012 à 12:26
sa ne fonctionne pas mon menu déroulant reste vierge alors qu'une de mes tables a le champ est_valide a 1
Utilisateur anonyme
22 juin 2012 à 13:47
22 juin 2012 à 13:47
Tu as compris le principe ? Ça devrait marcher. llors fais quelques recherches, du genre
$rep=mysql_query($req) or die(mysql_error());
pour vérifier qu'il n'y a pas de problème dans l'exécution de la requête
Affiche aussi le nom de la table et la valeur de $ll['cnt'] trouvée pour chaque table. Tu finiras bien par tomber sur ce qui cloche.
$rep=mysql_query($req) or die(mysql_error());
pour vérifier qu'il n'y a pas de problème dans l'exécution de la requête
Affiche aussi le nom de la table et la valeur de $ll['cnt'] trouvée pour chaque table. Tu finiras bien par tomber sur ce qui cloche.
trixxis
Messages postés
12
Date d'inscription
lundi 21 mai 2012
Statut
Membre
Dernière intervention
22 juin 2012
22 juin 2012 à 14:45
22 juin 2012 à 14:45
ok merci