Avatar billede htx98i17 Professor
25. maj 2007 - 22:11 Der er 4 kommentarer og
1 løsning

hent unik ip - distinct eller group by

Jeg har følgende:

SELECT WEEK(tid) AS uge,YEAR(tid) AS aar,ip,COUNT(id) AS antal FROM tblhits GROUP BY YEAR(tid),WEEK(tid) ORDER BY YEAR(tid) DESC,WEEK(tid) DESC

- som henter alle besøgende, også fra samme ip-adresse

Jeg vil have den til at tælle alle unikke besøgende.

Jeg har selv forsøgt at benytte DISTINCT og GROUP BY, men den vil bare ikke tælle anderledes end med sql'en der tæller alle besøgende.

Så uden at skrive hvad jeg selv har forsøgt, vil jeg gerne have jeres bud. Jeg har brugt distinct og group by mange gange før uden problemer. Jeg fatter bare ikke hvorfor det her drilller :(
Avatar billede htx98i17 Professor
25. maj 2007 - 22:16 #1
Her er hele koden, hvor antal alle besøgnge og antal unikke besøgende er det samme, hvilket det ikke skal være... som om distinct ikke fungerer...

<?
    include("inc_db_connect.php");
   
    $hentstatistik = mysql_query("SELECT WEEK(tid) AS uge,YEAR(tid) AS aar,COUNT(id) AS antal FROM tblhits GROUP BY YEAR(tid),WEEK(tid) ORDER BY YEAR(tid) DESC,WEEK(tid) DESC") or die(mysql_error());
    $hentunikstatistik = mysql_query("SELECT DISTINCT ip,COUNT(id) AS antal,WEEK(tid) AS uge,YEAR(tid) AS aar FROM tblhits GROUP BY YEAR(tid),WEEK(tid) ORDER BY YEAR(tid) DESC,WEEK(tid) DESC") or die(mysql_error());
   
    while($unikstatistik = mysql_fetch_array($hentunikstatistik)) $unikarray[$unikstatistik['aar'].$unikstatistik['uge']] = $unikstatistik['antal'];
   
?>
<html>
    <head>
                <LINK rel="stylesheet" href="stylesheet.css" >
    </head>

<body topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0" marginwidth="0" marginheight="0" bgcolor="#FFFFFF" >

    <table border="0" cellspacing="0" cellpadding="0" width="100%" >
        <tr>
            <td class="mainoverskrift" align="left"  width="400" height="50" valign="bottom" ><a href="index.php"><img src="grafik/logo.jpg" border="0"  ></a></td>
            <td class="main"  align="right" valign="bottom" >&nbsp;</td>
        </tr>
        <tr>
            <td align="Left" bgcolor="#8EA0BE" height="17">&nbsp;</td>
            <td align="right" bgcolor="#8EA0BE" >&nbsp;</td>
        </tr>
        <tr>
            <td class="mainsmall" align="Left" >&nbsp;<a href="index.php" >Forside</a>&nbsp; - &nbsp;<a href="varegrupper.php" >Varegrupper</a>&nbsp; - &nbsp;<a href="varedatabase.php" >Varedatabase</a> - &nbsp;<a href="statistik.php" >Statistik</a> - &nbsp;<a href="soegordre.php" >Ordrer</a> - &nbsp;<a href="forside.php" >Forside</a></td>
            <td class="mainsmall" align="right"><? echo(date("d. M. Y H:i ",time())); ?>&nbsp;</td>
        </tr>
    </table>
<!-- template -->
<p align="center" >Frem til 6. april 2007 blev kun unikke besøgende registreret. Fra 7. april registreres alle besøg.<br>
Se også <a href="http://www.trailerforum.dk/webstat/" >http://www.trailerforum.dk/webstat/</a> </p><br>
    <table border="0" cellspacing="0" cellpadding="0" align="center" >
        <tr>
            <td class="main" align="left" width="160" colspan="3" style="border-bottom: 1px SOLID #CCCCCC" >Statistik</td>
        </tr>
        <tr>
            <td class="main" align="left" width="80" style="border-bottom: 1px SOLID #CCCCCC" >Uge</td>
            <td class="main" align="left" width="40" style="border-bottom: 1px SOLID #CCCCCC" >Alle</td>
            <td class="main" align="left" width="40" style="border-bottom: 1px SOLID #CCCCCC" >Unikke</td>
        </tr>
    <? while($stat = mysql_fetch_array($hentstatistik)) { ?>
        <tr>
            <td class="main" align="left" width="80" ><? echo$stat['aar']." / ".($stat['uge']+1); ?></td>
            <td class="main" align="center" width="40" ><? echo$stat['antal']; ?></td>
            <td class="main" align="center" width="40" > - <? //echo$unikarray[$stat['aar'].$stat['uge']]; ?></td>
        </tr>
    <? } ?>
    </table>

</body>
</html>
Avatar billede arne_v Ekspert
25. maj 2007 - 22:17 #2
prøv:

SELECT WEEK(tid) AS uge,YEAR(tid) AS aar,COUNT(DISTINCT ip)
FROM tblhits
GROUP BY YEAR(tid),WEEK(tid)
ORDER BY YEAR(tid) DESC,WEEK(tid) DESC
Avatar billede htx98i17 Professor
25. maj 2007 - 22:23 #3
Du er min redningsmand...

Du aner ikke hvor meget det har drillet mig... har ellers aldrig haft problemer med det før...

lig et svar
Avatar billede arne_v Ekspert
25. maj 2007 - 22:49 #4
svar
Avatar billede htx98i17 Professor
26. maj 2007 - 08:47 #5
tak for deltagelsen
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester