Utilisation de COUNT [debutant]

BFH
Eléphant du PHP | 214 Messages

06 mai 2005, 14:21

Bonjour, est ce que quelqu'un pourrait m'expliquer comment utiliser "COUNT"
J'ai cela comme requete:
$query="SELECT DISTINCT IGroup FROM item WHERE ReportID=\"$P\" && IPage=\"Résumé\" ";
$result=mysql_query($query)or die (mysql_error());
$row=mysql_fetch_assoc($result);
		
$query1="SELECT COUNT(DISTINCT IGroup) FROM item WHERE ReportID=\"$P\" && IPage=\"Résumé\" ";//est ce c'est juste?
$result1=mysql_query($query1)or die (mysql_error());// je voudrais recuperer le nombre d'occurences de IGroup
$row1=mysql_fetch_assoc($result1);//et stocker cette valeur dans une variable
echo $row1;

$R=$row['IGroup'];
$query2="SELECT IField,IValue FROM item WHERE ReportID=\"$P\" && IPage=\"Résumé\" && IGroup='".$R."' ";		
$result2=mysql_query($query2)or die (mysql_error());
$row2=mysql_fetch_assoc($result2);
Perdu dans la matrice avec un guide michelin ](*,) #-o
Adorateur de Cyrano
Parti puis revenu...

Eléphant du PHP | 357 Messages

06 mai 2005, 14:27

dans mes souvenir la fonction count te permet de conter le nombre d element dans un tableau.
donc en gros tu peux l utiliser de plussieurs façons:
$val=count($tableau);
ou dans un if ou for
for ($i=0;$i<count($tableau);$i++)
{}
voila .

Mammouth du PHP | 19672 Messages

06 mai 2005, 14:32

Tu ne peux pas faire un COUNT (DISTINCT), enfin je ne crois pas. Par contre, tu peux faire un SELECT DISTINCT, mettre le résultat dans un tableau PHP et utiliser comme vient de le mettre seayoung un count($tableau_resultat)
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 357 Messages

06 mai 2005, 14:35

afirmatif un count distinct pas paussible.
SELECT DISTINCT paussible :p

BFH
Eléphant du PHP | 214 Messages

06 mai 2005, 14:43

J'ai voulu faire comme a dit seayoung
$query="SELECT DISTINCT IGroup FROM item WHERE ReportID=\"$P\" && IPage=\"Résumé\" "; 
$result=mysql_query($query)or die (mysql_error()); 
$row=mysql_fetch_assoc($result); 
         
$row1=count($row['IGroup'])
echo $row1; // pour voire combien d'occurrence il trouvait 
Pas de bol, (ça change! :? ) j'obtiens 1 au lieu de 6
Perdu dans la matrice avec un guide michelin ](*,) #-o
Adorateur de Cyrano
Parti puis revenu...

Eléphant du PHP | 357 Messages

06 mai 2005, 14:54

mmm sa change pe etre rien du tout mais si tu met:
$row=mysql_fetch_array($result); 
// a la place de 
$row=mysql_fetch_assoc($result); 
et que tu gardes le reste ... ca marche pas ?

Mammouth du PHP | 19672 Messages

06 mai 2005, 14:55

$query="SELECT DISTINCT IGroup FROM item WHERE ReportID=\"$P\" && IPage=\"Résumé\" "; 
$result=mysql_query($query)or die (mysql_error()); 
$row=mysql_fetch_assoc($result); 
         
$row1=count($row)
echo $row1; // pour voire combien d'occurrence il trouvait 
Compte juste le tableau, pas le champ
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

BFH
Eléphant du PHP | 214 Messages

06 mai 2005, 15:05

mettre fetch_array au lieu de fetch_assoc me fait passer de 1 à 2 (au lieu de 6 dommage)
mettre $row1=count($row) ne change rien!
Perdu dans la matrice avec un guide michelin ](*,) #-o
Adorateur de Cyrano
Parti puis revenu...

Eléphant du PHP | 357 Messages

06 mai 2005, 15:06

oui m*** j avais pas vue lol Bien vu Cyrano
dur de pas faire le pont lol

Mammouth du PHP | 19672 Messages

06 mai 2005, 15:09

On va essayer autre chose:
$query="SELECT DISTINCT IGroup FROM item WHERE ReportID=\"$P\" && IPage=\"Résumé\" ";
$result=mysql_query($query)or die (mysql_error());
$i = 0;
while($row=mysql_fetch_array($result))
{
    $i++;
}
echo($i);
Teste ça
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 357 Messages

06 mai 2005, 15:10

mmm j ai une question bete :
$query="SELECT DISTINCT IGroup FROM item WHERE ReportID=\"$P\" && IPage=\"Résumé\" ";
$result=mysql_query($query)or die (mysql_error());
$row=mysql_fetch_assoc($result);
         
$row1=count($row) //<<manquerait pas un ; par hazard ?
echo $row1; // pour voire combien d'occurrence il trouvait

Mammouth du PHP | 19672 Messages

06 mai 2005, 15:15

J'ai une autre idée qui m'est venu BFH: le champ IGroupe prend ses valeurs où ? est-ce qu'il y a une autre table avec toutes les valeurs possibles sans doublons ? Parce que ça nous aiderait pas mal...
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

ViPHP
ViPHP | 1380 Messages

06 mai 2005, 15:16

Un COUNT DISTINCT est possible en MySQL.

Code : Tout sélectionner

SELECT COUNT(DISTINCT IGroup) FROM item WHERE ...
Si tu n'as besoin que de ce comptage, il n'est peut-être pas nécessaire de charger un ensemble de résultats dans un tableau par boucle puis de le compter en PHP.

Je pense que tu économiseras du temps et de la mémoire en faisant le comptage directement dans MySQL.
ripat

BFH
Eléphant du PHP | 214 Messages

06 mai 2005, 15:18

Cyrano, encore une fois merci

Seayoung désolé il a sauté avec le copié collé mais même en le mettant ça marche pas
Perdu dans la matrice avec un guide michelin ](*,) #-o
Adorateur de Cyrano
Parti puis revenu...

Mammouth du PHP | 19672 Messages

06 mai 2005, 15:20

Un COUNT DISTINCT est possible en MySQL.
J'ignorais completement cette possibilité, c'est pour ça que je cherchais une alternative... :oops:
je vais me cacher
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe: