[RESOLU] COUNT, INNER JOIN et GROUP BY

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] COUNT, INNER JOIN et GROUP BY

Re: COUNT, INNER JOIN et GROUP BY

par Mazarini » 08 oct. 2012, 09:42

En fait dans le count est lié au "group by". Tu récupère donc le count() pour chaque identifiant.

La solution ci-dessus marche. Autrement il faudrait faire une requete différente pour compter le nombre d'identifiants différents.

Re: COUNT, INNER JOIN et GROUP BY

par piotrowski-s » 07 oct. 2012, 21:39

salut,

regarde du côté de la fonction mysql_num_rows

COUNT, INNER JOIN et GROUP BY

par FranckW » 07 oct. 2012, 17:38

Bonjour,

Grâce à votre aide mon problème de INNER JOIN est résolu, mais l'avancement de mes travaux me confronte à un autre problème.

Ma requête ci dessous fonctionne parfaitement.
	$req = "SELECT * FROM data INNER JOIN link ON link.id=data.id AND";
	$mots = explode(' ',$filtre);
	foreach($mots as $mot)
	{
		$req .= " query LIKE '%".$mot."%' AND";
	}
	$req .= " 1=1";
	$req .= " GROUP BY data.id";
	$requete = mysql_query($req);
Par contre pour la navigation de page en page, j'ai besoin de connaître le nombre d'enregistrement retourné par cette requête.
Je me lance donc avec la fonction COUNT ci-dessous afin que la variable $nblignes contienne le nombre de ligne :
	$query = "SELECT COUNT(*) FROM data INNER JOIN link ON link.id=data.id AND";
	$mots = explode(' ',$filtre);
	foreach($mots as $mot)
	{
		$query .= " query LIKE '%".$mot."%' AND";
	}
	$query .= " 1=1 ";
	$query .= " GROUP BY data.id";
	$numresultat = mysql_query($query);
	$numrow = mysql_fetch_row($numresultat);
	$nblignes = $numrow[0];
Mais cela retourne toujours la valeur "1".
Je tourne et retourne en rond, merci d'avance pour votre aide.
J'arrive à trouver mon résultat en rajoutant le code ci-dessous mais je ne trouve pas cela terrible.
        while($row = mysql_fetch_array($query)) {
	    $nblignes++;
		}