[MySQL] SHOW TABLE avec condition
Résolu
trixxis
Messages postés
12
Date d'inscription
Statut
Membre
Dernière intervention
-
trixxis Messages postés 12 Date d'inscription Statut Membre Dernière intervention -
trixxis Messages postés 12 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je suis actuellement en train de créer une application web qui traite des données client avec une visualisation et une édition.
J'aimerai faire en sorte que seul les "rapports" client validé sois visible dans le menu visualisation.
Mes rapports sont fait de la façon suivante: 1 BDD par an et une table par client.
j'ai donc pensé a deux solution:
1°: ajouter un booléen "est_valider" dans chaque table qui permettrai avec une requête du type "show table where est_valider=1" d'avoir le résultat que je cherche
2°:faire deux BDD par ans avec un systeme de migration de table
Ces deux idée me paraissent pertinentes mais dans les deux cas je ne sais pas comment faire ca en ligne de code. Vue que mon application sera utilisé par des non initié, impossible donc d'allez trifouillé dans PhPmyadmin et donc je suis obliger de faire tous pas le code.
Si quelqu'un a une solution pour l'une des deux solution je suis preneur
merci d'avance
Je suis actuellement en train de créer une application web qui traite des données client avec une visualisation et une édition.
J'aimerai faire en sorte que seul les "rapports" client validé sois visible dans le menu visualisation.
Mes rapports sont fait de la façon suivante: 1 BDD par an et une table par client.
j'ai donc pensé a deux solution:
1°: ajouter un booléen "est_valider" dans chaque table qui permettrai avec une requête du type "show table where est_valider=1" d'avoir le résultat que je cherche
2°:faire deux BDD par ans avec un systeme de migration de table
Ces deux idée me paraissent pertinentes mais dans les deux cas je ne sais pas comment faire ca en ligne de code. Vue que mon application sera utilisé par des non initié, impossible donc d'allez trifouillé dans PhPmyadmin et donc je suis obliger de faire tous pas le code.
Si quelqu'un a une solution pour l'une des deux solution je suis preneur
merci d'avance
A voir également:
- [MySQL] SHOW TABLE avec condition
- Usb show - Télécharger - Sauvegarde
- Table ascii - Guide
- Table des matières word - Guide
- Excel cellule couleur si condition texte - Guide
- Show key plus - Télécharger - Utilitaires
11 réponses
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.
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
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
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
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
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
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 ?
sa ne fonctionne pas mon menu déroulant reste vierge alors qu'une de mes tables a le champ est_valide a 1
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.