SELECT Count

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 : SELECT Count

par hashut » 10 mai 2007, 17:03

Merci
voila comment j'ai fait samarche nickel

Code : Tout sélectionner

$db = mysql_connect($serveur, $user, $passw); mysql_select_db('$base',$db); $query = "SELECT count(*) as NbMail from MAIL_BOXES WHERE IDDOMAIN='$IDDOMAIN'"; $res = mysql_query($query); $NbMail = mysql_result($res, '0', 'NbMail'); echo" $NbMail ";
merci encore

par Ryle » 10 mai 2007, 11:34

Simplement parce que ici :
$row = mysql_fetch_row($result); 
$total = $row[0] ; 
tu mets le premier élément de la première ligne retournée par ta requête dans ta variable $total, c'est à dire l'iddomain...

La requête que je t'ai donné va te retourner un résultat du type :

Code : Tout sélectionner

IDDOMAIN | TOTAL 1 | 5 2 | 2 4 | 18
A toi de lire le bon champ, et éventuellement de filtrer si tu veux un id en particulier :
$select ='SELECT iddomain, COUNT(*) AS total 
  FROM MAIL_BOXES 
  WHERE iddomain = 4
  GROUP BY iddomain'; 
$result = mysql_query($select) or die ('Erreur : '.mysql_error() ); 
$row = mysql_fetch_assoc($result); // fetch_assoc te permet d'utiliser les noms des colonnes.. c'est quand même plus pratique :)
$total = $row['total'] ; 
echo $total;

par hashut » 10 mai 2007, 11:24

Sa marche Pas sa m'affiche toujour 1

Code : Tout sélectionner

$select ='SELECT IDDOMAIN , COUNT(*) AS total FROM MAIL_BOXES GROUP BY IDDOMAIN '; $result = mysql_query($select) or die ('Erreur : '.mysql_error() ); $row = mysql_fetch_row($result); $total = $row[0] ; echo"$total ";
J'arrive pas as comprendre PK
ma version de SQL MySQL - 5.0.27
ma PHP Version 5.1.6

si une personne as une idée voir plusieur
merci D'avance

par Ryle » 10 mai 2007, 08:34

Il te faut en fait un mélange d'un peut tout ça... le distinct n'est pas utile dès lors où tu utilises le GROUP BY puisque les lignes identiques seront automatiquement regroupées :

Code : Tout sélectionner

SELECT iddomain, COUNT(*) AS total FROM mail_boxes GROUP BY iddomain
Tu vas ainsi ramener pour chaque iddomain le nombre 'total' d'enregistrement qui y sont associés dans ta table mail_boxes en les regroupant par iddomain ;)


... et c'est effectivement plus une question sql donc je déplace :)

par lem » 09 mai 2007, 20:17

DISTINCT est une option, il n'y a pas besoin de parenthèses.

[EDIT]M'enfin on s'éloigne du PHP là quand même..[/EDIT]

par hashut » 09 mai 2007, 20:13

comment ça DISTINCT

j'ai fait

$select = 'SELECT DISTINCT(IDDOMAIN) FROM MAIL_BOXES ';
et aussi

$select = 'SELECT count(DISTINCT(IDDOMAIN)) FROM MAIL_BOXES ';
mais pareil marche pas

help my

merci

par jojolapine » 09 mai 2007, 19:21

DISTINCT ?

SELECT Count

par hashut » 09 mai 2007, 18:40

SAlut

voila jai un table Mail_Boxes --> ID IDDOMAIN Mail

Code : Tout sélectionner

++++ ID +++++ IDDOMAIN +++++++++ Mail +++++++ + 1 + 1 ++++ [email protected] + +++++++++++++++++++++++++++++++++++++++++ + 2 + 1 + [email protected] + +++++++++++++++++++++++++++++++++++++++++ + 3 + 2 + [email protected] + +++++++++++++++++++++++++++++++++++++++++ + 4 + 3 + [email protected] + +++++++++++++++++++++++++++++++++++++++++ + 5 + 4 + [email protected] + +++++++++++++++++++++++++++++++++++++++++ + 6 + 5 + [email protected] + +++++++++++++++++++++++++++++++++++++++++ + 7 + 5 + [email protected] + +++++++++++++++++++++++++++++++++++++++++
quand je fait :

Code : Tout sélectionner

$db = mysql_connect($serveur, $user, $passw); mysql_select_db('$base',$db); $select = 'SELECT COUNT(IDDOMAIN) FROM MAIL_BOXES '; $result = mysql_query($select) or die ('Erreur : '.mysql_error() ); $row = mysql_fetch_row($result); $total = $row[0] ; echo" $total";
cela me compte le iddomain donc Affiche 7
moi en fait je voudrais que total soit le nombre de id ou mail aillant le même IDDOMAIN
j'ai teste avec un GROUP BY IDDOMAIN ou GROUP BY MAIL ou GROUP BY IDcela m'affiche 1
commant faire pour pour que le resultat soit le nombre ID aillant le même IDDOMAIN

merci d'avance