Requête SQL pour compter

Fermé
micky19781 Messages postés 13 Date d'inscription dimanche 18 février 2007 Statut Membre Dernière intervention 16 novembre 2009 - 16 nov. 2009 à 19:57
 Le dinosaure facultatif - 17 nov. 2009 à 09:37
Bonjour,

Je souhaiterais compter les adresses ip de ma table le problème c'est que je ne veux pas compter ceux qui sont plusieurs fois enregistrées
voiçi ma requète pour le comptage :
$sql = " SELECT * FROM releveip ";
$res = mysql_query($sql);
$nbip = mysql_num_rows($res);
echo $nbip;
Cela me compte toutes les adresses ip de ma table mais comment faire pour ne pas compter les mêmes adresses qui sont enregistrées plusieurs fois

je veux que si une adresse est enregistrée par exemple 10 fois ne compte qu'une seul fois

merci de bien vouloir m'aider

5 réponses

sandul Messages postés 3927 Date d'inscription jeudi 22 mai 2008 Statut Membre Dernière intervention 8 octobre 2010 723
16 nov. 2009 à 20:23
'Soir,

Au niveau de la requete, rajoute un mot:

SELECT DISTINCT * FROM releveip 

++
0
moiced59 Messages postés 1145 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 18 août 2014 60
16 nov. 2009 à 20:25
bonjour

la tu ne compte pas mais affiche tout les lignes

si tu veux affiché toutes les lignes pour t adresse ip il te faut mettre

select distinct nom_du_champ_des_adresse_ip,* from releveip
0
Le demi-joint extrusif
17 nov. 2009 à 02:32
salut
le plus simple est SELECT count(distinct adresse) from releveip
adresse étant la colonne qui contient l'adresse relevée
0
moiced59 Messages postés 1145 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 18 août 2014 60
17 nov. 2009 à 07:10
bonjour

Un select count (distinct adresse ) from... ne marchera pas!!!!!!! il faut un:
select count(...) from (select distinct.....)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Le dinosaure facultatif
17 nov. 2009 à 09:37
Ah ouais !?
mysql> select * from essai;
+---------+-------+
| adresse | heure |
+---------+-------+
| 1       | A     |
| 1       | B     |
| 2       | A     |
+---------+-------+
3 rows in set (0.00 sec)

mysql> select count(adresse) from essai;
+----------------+
| count(adresse) |
+----------------+
| 3              |
+----------------+
1 row in set (0.00 sec)

mysql> select count(distinct adresse) from essai;
+-------------------------+
| count(distinct adresse) |
+-------------------------+
| 2                       |
+-------------------------+
1 row in set (0.00 sec)

mysql>
0