cs_lacomm
Messages postés298Date d'inscriptionlundi 14 juin 2004StatutMembreDernière intervention 5 juillet 2013
-
15 déc. 2009 à 17:32
nhervagault
Messages postés6063Date d'inscriptiondimanche 13 avril 2003StatutMembreDernière intervention15 juillet 2011
-
16 déc. 2009 à 20:03
Hello,
je voudrais compter le nombre de lignes que me renvoie ma requête, comme ceci:
$req = "SELECT *, COUNT(*) as NB FROM f1media WHERE 1=1";
if(!empty($_POST['nom_fichier']))
{
if($_POST['nom_fichier'] == '*')
$req .= " AND nom_fichier NOT LIKE '".$_POST['nom_fichier']."' ";
else
$req .= " AND nom_fichier LIKE '%".$_POST['nom_fichier']."%' ";
}
(..suivent d'autres conditions identiques)
$req.= "GROUP BY ID";
$result = mysql_query($req)
or die ("Couldn't execute query.");
$donnee=mysql_fetch_array($result) ;
$numRec = $donnee['NB'];
Malheureusement, j'obtiens toujours 1
J'ai donc séparé les requêtes, et ca marche.
Mais j'aimerais autant que ca marche dans une seule requête, merci
nhervagault
Messages postés6063Date d'inscriptiondimanche 13 avril 2003StatutMembreDernière intervention15 juillet 201137 16 déc. 2009 à 20:03
C'est ce qui est dit plus haut, quand il y a une instruction d'aggregation (count,avg, sum,max,min, ...)
il faut specifier en clair les champs.
Pour pousser un peu plus loin la réflexion, si une formule est utilise il faut la mettre dans le group by aussi
ici annee_construction ne peut etre mis dans le group by sur sql server( il me semble et c'est la meme chose pour les autres SGBDR)
select rue, count(*) as nb, year(dateconstruction) as annee_construction
from dbo.Adresse
group by rue ,year(dateconstruction)