Selection MySQL

Résolu
BEAUBRIUS Messages postés 120 Date d'inscription lundi 19 mai 2003 Statut Membre Dernière intervention 8 février 2008 - 24 mars 2006 à 15:09
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 - 26 mars 2006 à 11:01
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

BEAUBRIUS Messages postés 120 Date d'inscription lundi 19 mai 2003 Statut Membre Dernière intervention 8 février 2008
24 mars 2006 à 15:23
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
3
yanne1985 Messages postés 87 Date d'inscription samedi 14 janvier 2006 Statut Membre Dernière intervention 5 décembre 2008
24 mars 2006 à 15:27
while($t=mysql_fetch_array($a))

{

echo $t["ip"] ;

}
3
Tarvos Messages postés 40 Date d'inscription vendredi 11 mars 2005 Statut Membre Dernière intervention 24 mars 2006
24 mars 2006 à 15:27
$res = mysql_query("SELECT ip,date FROM `sfywb_visite` where user='$login'",$connexion);
while ($row mysql_fetch_array($res)) $ips[$row['date']][] $row['ip'];
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
24 mars 2006 à 15:27
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?
0

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

Posez votre question
BEAUBRIUS Messages postés 120 Date d'inscription lundi 19 mai 2003 Statut Membre Dernière intervention 8 février 2008
24 mars 2006 à 15:32
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
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
26 mars 2006 à 11:01
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>
0
Rejoignez-nous