Mysql_field_table avec union ?!

g0ldstein85 Messages postés 3 Date d'inscription mercredi 25 juillet 2007 Statut Membre Dernière intervention 6 août 2007 - 6 août 2007 à 11:52
g0ldstein85 Messages postés 3 Date d'inscription mercredi 25 juillet 2007 Statut Membre Dernière intervention 6 août 2007 - 6 août 2007 à 22:03
Salut,

Je fais une liste avec des informations provenant de 3 tables.
$q1 <gras>"SELECT * FROM TUTO WHERE APPROVED 'n' UNION SELECT * FROM ANN WHERE APPROVED = 'n'
</gras>

SELECT * FROM ATC WHERE APPROVED = 'n'


LIMIT 0, 15";

$r1 = mysql_query($q1);




Je les fais donc passer dans une boucle pour les afficher:

while ($f1 = mysql_fetch_assoc($r1)) {
echo $f1['info'];
}

Mais j'aimerais pouvoir détecter de laquelle des 3 tables provient $f1['info'] ...
mysql_field_table() fonctionne seulement si je fais un select sur une seule table, car mes colonnes ont toutes les memes noms dans chacune des tables.

Au pire, est-ce qu'il existe une fonction SQL qui permette de lister le nom de la table dans les colonnes ? style SELECT nomdelatable(*), * FROM ...., ainsi je pourrais retourner le nom de la table par $f1[0] par exemple?

Svp, votre aide serait très appréciée, je n'ai rien trouvé sur le net à ce sujet, pourtant une solution doit bien exister... Merci !

4 réponses

cedriclomb Messages postés 275 Date d'inscription samedi 19 novembre 2005 Statut Membre Dernière intervention 27 avril 2010 1
6 août 2007 à 16:22
Salut t'a essayer de faire un SHOW COLUMNS FROM ??
0
g0ldstein85 Messages postés 3 Date d'inscription mercredi 25 juillet 2007 Statut Membre Dernière intervention 6 août 2007
6 août 2007 à 16:43
Salut,
Merci pour ta réponse.
Seulement, je ne comprends pas comment Show Columns peut me retourner le nom de la table (car c'Est bien le nom de la table que je cherche à retourner, et pas les colonnes).

C'est sans doute pas très clair, je vais essayer de reformuler.
J'ai une requete qui va chercher des informations de 3 tables différentes, unies (UNION) dans la requete. Ces 3 tables ont une structure identique (a savoir, les memes noms de colonnes et le meme nombre de colonnes).

Dans ma boucle quand je fais afficher les resultats de la requete, j'aimerais pouvoir savoir en plus de quelle table la donnée affichée provient.

Je sais que je pourrais faire une seule table avec ces 3 tables et ajouter une colonne pour le "type", mais j'aimerais ne pas passer par là, je préfère les traiter en tables différentes...
0
Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 4
6 août 2007 à 17:16
Hello, je ne sais pas comment faire pour que ça affiche le nom des colonnes, mais je me pose une autre question : pourquoi ne pas faire 3 requêtes ? (OK je sors)
Sinon au passage, tu connais la syntaxe SELECT A.truc, B.truc FROM table1 A, table2 B ?
0
g0ldstein85 Messages postés 3 Date d'inscription mercredi 25 juillet 2007 Statut Membre Dernière intervention 6 août 2007
6 août 2007 à 22:03
Salut,
Je ne cherche pas à afficher le nom des colonnes, mais le nom de la table associée... Si, je peux faire trois requêtes, mais je dois répéter 3 fois ma séquence de code, ce qui est illogique et ce qui me convaincs qu'il doit y avoir une autre façon de faire... À l'aide quelqu'un !
0
Rejoignez-nous