A voir également:
- Sélection sur toutes les tables d'une bdd.
- Comment faire une table des matières sur word - Guide
- L'indice n'appartient pas à la sélection vba ✓ - Forum Programmation
- Oracle liste des tables ✓ - Forum Oracle
- Tables ascii - Guide
- L'indice n'appartient pas à la selection ✓ - Forum VB / VBA
4 réponses
siniko44
Messages postés
172
Date d'inscription
vendredi 30 juillet 2010
Statut
Membre
Dernière intervention
29 novembre 2013
17
21 avril 2011 à 14:24
21 avril 2011 à 14:24
Hum ça doit être un joyeux bordel ta BDD, je ne voit pas pourquoi tu as besoin de créer une table par bon... Soit.
Dans ce cas, il faudrait utiliser une fonction qui appelle toutes les tables, qui les classe dans un tableau, créer une boucle pour rechercher dans chaque table si la colonne emetteur contient 'jean eymare'... Fin bref, sa prendrais un sacré bout de temps...
Dit moi si tu restes sur cette idée, je pourrais quand même t'aider.
Dans ce cas, il faudrait utiliser une fonction qui appelle toutes les tables, qui les classe dans un tableau, créer une boucle pour rechercher dans chaque table si la colonne emetteur contient 'jean eymare'... Fin bref, sa prendrais un sacré bout de temps...
Dit moi si tu restes sur cette idée, je pourrais quand même t'aider.
Panshu
Messages postés
31
Date d'inscription
mardi 19 avril 2011
Statut
Membre
Dernière intervention
26 mai 2014
21 avril 2011 à 15:04
21 avril 2011 à 15:04
C'est aussi mon avis, ta base est ingérable.. Pourquoi ne pas tout simplement utiliser deux ou trois tables liées par un id ?
Merci de vos réponses.
Je sais ma base est énorme, mais le projet a évoluer au fil du temps et c'est devenus un petit merdier.
j'ai trouvé une solution :)
je commence par un SHOW TABLE qui me donne un listing de toute mes tables, donc de tout me numéro de commande. pour chaque résultat je lance une boucle qui vient vérifier si la table contient la donnée recherché.
Quand j'explique comme ca je me ré-embrouille.
Voici le code (peut être plus explicite, ou pas ....)
J'ai aussi eu un autre problème, la variable $table me retournait un nom de table du style " '50000060' " et ensuite dans la requête les apostrophes ne passait pas (nom de table inconnus), c'est pour cela que je prend une seconde variable contenant juste le numéro.
Je dois présenter le programme demain, ceci fonctionne (par miracle oui !) mais je voudrais le "simplifier" par la suite donc je reste à votre écoute ;)
Bonne journée.
Je sais ma base est énorme, mais le projet a évoluer au fil du temps et c'est devenus un petit merdier.
j'ai trouvé une solution :)
je commence par un SHOW TABLE qui me donne un listing de toute mes tables, donc de tout me numéro de commande. pour chaque résultat je lance une boucle qui vient vérifier si la table contient la donnée recherché.
Quand j'explique comme ca je me ré-embrouille.
Voici le code (peut être plus explicite, ou pas ....)
$codetva=$_POST['codetva']; $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION; $bdd = new PDO('mysql:host=###;dbname=###', '###', '####', $pdo_options); $query='SHOW TABLES'; $query=$bdd->query($query); $res=$query->fetchALL(PDO::FETCH_ASSOC); while(list($key,$array)=each($res)) { foreach($array as $table) { $numcommande=$table[1].$table[2].$table[3].$table[4].$table[5].$table[6].$table[7].$table[8]; $reponse = $bdd->prepare('SELECT * FROM 'commande'.':table' WHERE codetva=:codetva'); $reponse -> execute(array('table' => $numcommande, 'codetva' => $codetva)); while ($donnees = $reponse->fetch()) { <tr> <td Align=center width=50px><?php echo $donnees['ref']; ?></td> <td Align=center width=400px><?php echo $donnees['desi']; ?></td> <td Align=center width=50px><?php echo $donnees['quant']; ?></td> <td Align=center width=80px><?php echo $donnees['puht']; ?></td> <td Align=center width=80px><?php echo $donnees['emetteur']; ?></td> <td Align=center width=80px><?php echo $donnees['service']; ?></td> <td Align=center width=80px><?php echo $donnees['fourni']; ?></td> <td Align=center width=80px><?php echo $donnees['observation']; ?></td> <td Align=center width=80px><?php echo $donnees['codetva']; ?></td> </tr> } }
J'ai aussi eu un autre problème, la variable $table me retournait un nom de table du style " '50000060' " et ensuite dans la requête les apostrophes ne passait pas (nom de table inconnus), c'est pour cela que je prend une seconde variable contenant juste le numéro.
Je dois présenter le programme demain, ceci fonctionne (par miracle oui !) mais je voudrais le "simplifier" par la suite donc je reste à votre écoute ;)
Bonne journée.
siniko44
Messages postés
172
Date d'inscription
vendredi 30 juillet 2010
Statut
Membre
Dernière intervention
29 novembre 2013
17
21 avril 2011 à 16:00
21 avril 2011 à 16:00
C'est la méthode dont je voulais te parler, et je ne vois pas de meilleur solution :/.
Le chargement n'est pas un peu trop long ?
Le chargement n'est pas un peu trop long ?