Selection MySQL [Résolu]

Signaler
Messages postés
120
Date d'inscription
lundi 19 mai 2003
Statut
Membre
Dernière intervention
8 février 2008
-
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
-
Bonjour

Je ne sais pas trop si je doit le metre dans sql ou dans php donc je le met ici, mais desole si je me suis trompe d'endroit.
J'ai dans ma varaible $connexion la connexion a ma basse de donnée
J'ai un tableau de ma bdd qui contien des ips et des dates.
Grace a phpmyadmin j'ai crée une requet qui me compte le nombre d'ip different par jour :
-"SELECT COUNT(DISTINCT ip )FROM `sfywb_visite` group by date"
cette requet me donne un tableau avec 1 seul colone et x ligne avec x le nombre de date differente, et sur ces lignes il y a le nombre d'ip different a cette date.

J'ai realiser cette requet en php de la fason suivante :
$a=mysql_query("SELECT COUNT(DISTINCT ip )FROM `sfywb_visite` where user='$login' group by date",$connexion);

Mais maintenant je cherche a lire les x ligne du tableau. J'ai penser a faire un mysql_result mais :
lorsque je fait $nbr=mysql_result($a,"somme");
$nbr a la valeur que de la premier ligne du tableau
et lorsque je fait $nbr=mysql_result($a,"1","somme");
j'ai une erreur ...
Je n'arrive pas a trouve de solution donc si quelqun peu m'eclairé ?

Merci

6 réponses

Messages postés
120
Date d'inscription
lundi 19 mai 2003
Statut
Membre
Dernière intervention
8 février 2008

En cherchant encore j'ai finalement trouvé ma solution

$a=mysql_query("SELECT COUNT(DISTINCT ip )FROM `sfywb_visite` where user='$login' group by date",$connexion);
$nbr='0';
while ($donnees = mysql_fetch_array($a) )
{
$nbr= ($nbr+$donnees[0]);
}

Si quelqun a une meilleur solution , je suis preneur
Messages postés
87
Date d'inscription
samedi 14 janvier 2006
Statut
Membre
Dernière intervention
5 décembre 2008

while($t=mysql_fetch_array($a))

{

echo $t["ip"] ;

}
Messages postés
40
Date d'inscription
vendredi 11 mars 2005
Statut
Membre
Dernière intervention
24 mars 2006

$res = mysql_query("SELECT ip,date FROM `sfywb_visite` where user='$login'",$connexion);
while ($row mysql_fetch_array($res)) $ips[$row['date']][] $row['ip'];
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
Hello,

heu...tu fais un count avec un group by, puis tu additionnes tous tes count...?? Il sert à quoi le group by dans ce cas?

SELECT COUNT(DISTINCT ip)FROM `sfywb_visite` where user='$login'

te renvoie la même chose...? Ou je n'ai pas compris ce que tu cherchais à faire?
Messages postés
120
Date d'inscription
lundi 19 mai 2003
Statut
Membre
Dernière intervention
8 février 2008

Salut Malalam

Non tu n'as pas trés bien compris

En gros ça va me permetre de faire un compteur de visite avec 1 ip par jour.

Si je vais ta methode la personne qui a un ip fixe qui vien un jour
puis le lendemain comptera que comme 1 visite, alors que par ma methode
elle comptera comme 2 ce qui est normal vu quel a visiter le site 2
fois ...





Merci yanne1985
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
8
Salut,

avec un REPLACE INTO ça aurait marché sans faire de COUNT DISTINCT, tu fais deux champs avec une clé (ip,date) unique et tu fais un replace INTO, si le mec a un couple ip/date identique ça sera remplacé, dans le cas contraire ça sera une ligne en plus dans ta table, le tout en une seule requête sans fetch...

a +

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>