SELECT dans un SELECT ??

Répondre
savageman
le 28/08/2003 à 21:43
savageman
Bonjour, j'aimerais savoir si il est possible de faire un SELECT dans un SELECT, je m'explique:

soit ce code:

$sql = "SELECT * FROM $table[sujets] WHERE f_id='" . $_GET["id"] . "'";
$result = mysql_query($sql);
$nb["sujets"] = mysql_affected_rows();

$sql2 = "SELECT id, s_id AS sujet_id FROM $table[messages] WHERE f_id='" . $_GET["id"] . "'";
$result2 = mysql_query($sql2);
$nb["messages"] = mysql_affected_rows();

et j'aimerais recuperer le nombre de messages appartenant a chaque sujet... (c'est pour ne pas faire 50 requetes...).
Si qqn a une astuce pour faire ca ca srait cool, merci !
LA GLOBULE
le 28/08/2003 à 22:48
LA GLOBULE
J'ai pas tout compris la...

Tu ne fais pas de SELECT dans un autre SELECT là, tu fais deux SELECT à la suite, c'est tout.
Michel_57
le 29/08/2003 à 02:12
Michel_57
je crois avoir compri son probleme.
Justement au lieu de faire 2 SELECT, ou 3 ou 50, il voudrai un programme euh "récursif" je dirais.
Il ne ferai qun seul select utilisé 50fois au lieu de 50 select utilisés 1 fois.

Est ce que c'est bien ca le probleme ? ou bien jai tapé a coté ?
Merci LEPHPFACILE et tous ses membres :)
Alkaid
le 29/08/2003 à 09:18
Alkaid
non logiquement ya aucun pb a faire deux select comme ca puisque tu veu dabord selectionner le sujet et ensuite compter les message si g bien compris....dc di ce qui va pas et sinon explique mieu ce que tu veu faire smiley
O_o
Zitzit
le 29/08/2003 à 10:57
Zitzit
hello

Je pense savoir ce que veut savageman
j'espère ! ;)

essaye une requête du genre :

SELECT * FROM $table[sujets], $table[messages] WHERE f_id='".$_GET["id"]."'

J'ai mis * ( c'est pas conseillé ! ) car on ne connait pas la structure de ta table, c'est pas optimisé mais au moins tu peux voir si ça fonctionne
c'est aussi en considérant que f_id est présent dans les 2 tables
Je te conseille un mysql_num_rows() à la place de mysql_affected_rows() ( cela n'engage que moi ! )

@+

PS : donne la strcuture de tes tables cela sera + simple...
Zitzit
savageman
le 29/08/2003 à 13:30
savageman
Ben oui, en fait, si j'ai 40 sujets sur ma page, he bien, j'ai pas envie de faire 40 requetes pour compter le nombre de messages de chaque sujet... Je voudrais faire une seule requete (qui contient toutes les informations necessairtes pour savoir combien de mess dans chaque sujet), puis l'utiliser autant de fois que j'en ai besoin...

Sinon, oui le champ f_id est present dans les 2 tables...
savageman
le 29/08/2003 à 13:55
savageman
Je suis parti en vadrouille sur le net chercher une solution, et voici ce que j'ai trouvé:

SELECT s_id, COUNT(*) FROM matable GROUP BY s_id

Voici le script qui resoudra tout mes problemes (j'espere!)

Dites moi ce que vs en pensez !
Zitzit
le 29/08/2003 à 15:59
Zitzit
il te manque le WHERE je pense !
je ne vois pas l'intérêt du COUNT si tu fais un num_rows...
quand tu testes, est-ce que cela fonctionne ?
Zitzit
savageman
le 29/08/2003 à 18:34
savageman
Ben ca en fait c'est juste pour compter le nombre de sujets dans chaque forum ou le nombre de messages dans chauqe sujet, donc j'ai fait un count!

Sinon, oui ca marche
Répondre
LoadingChargement en cours