Avatar billede tanzaweb Nybegynder
24. maj 2005 - 14:30 Der er 9 kommentarer og
1 løsning

Distinct med mysql_num_rows på 2 felter

Hej

Jeg har denne sætning.

$month = date("Y-m");       
        include_once ("../cfig.php");
        $result = mysql_query("SELECT DISTINCT Dato_ind, Ip FROM Data WHERE Dato_ind LIKE '%$month%'") or die (mysql_error());
       
        $rows = mysql_num_rows($result);       
        $antal = $rows;
               
        echo $antal

Hvor jeg gerne vil have antallet af unikke besøgende i denne måndede, og her vil jeg gerne lave en distinct på Ip, og så tage dem hvor datoen LIKE $month, men som jeg har skrevet den her så laver den vel også en distinct på datoen eller hvad?

hvordan mener i den skal se ud?
Avatar billede busschou Praktikant
24. maj 2005 - 14:41 #1
$result = mysql_query("SELECT Dato_ind, DISTINCT Ip FROM Data WHERE Dato_ind LIKE '%$month%'") or die (mysql_error());
Avatar billede busschou Praktikant
24. maj 2005 - 14:42 #2
Men hvis du kun er interesseret i antallet så burde følgende vist kunne gøre det
$result = mysql_query("SELECT COUNT (DISTINCT Ip) FROM Data WHERE Dato_ind LIKE '%$month%'") or die (mysql_error());
$antal = mysql_result($result,0);
Avatar billede barklund Nybegynder
24. maj 2005 - 14:43 #3
Skal du kun bruge antallet? Du skal ikke bruge rækkerne? Så brug COUNT(DISTINCT) istedet. Og hvis Dato_ind er et mysql DATETIME eller DATE felt, så brug:

$result = mysql_query("SELECT COUNT(DISTINCT Ip) FROM Data WHERE MONTH(Dato_ind) = MONTH(NOW()) AND DAYOFMONTH(Dato_ind) = DAYOFMONTH(NOW())") or die (mysql_error());
$antal = mysql_result($result, 0);
echo $antal;

Vil jeg umiddelbart tro er det smarteste :)

--
Morten Barklund
Avatar billede barklund Nybegynder
24. maj 2005 - 14:45 #4
Hov, ikke DAYOFMONTH med YEAR:

$result = mysql_query("SELECT COUNT(DISTINCT Ip) FROM Data WHERE MONTH(Dato_ind) = MONTH(NOW()) AND YEAR(Dato_ind) = YEAR(NOW())") or die (mysql_error());
$antal = mysql_result($result, 0);
echo $antal;

:)

--
Morten Barklund
Avatar billede tanzaweb Nybegynder
24. maj 2005 - 14:48 #5
Får en fejl i mysql syntaxe på den første
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'DISTINCT Ip FROM Data WHERE Dato_ind LIKE '%2005-05%''
Avatar billede tanzaweb Nybegynder
24. maj 2005 - 14:55 #6
virker nu, men det sjove er at min egen faktsik også viste sig at virke, lige som barklund's gør

så lave lige et svar barklund og de er dine
Avatar billede busschou Praktikant
24. maj 2005 - 14:57 #7
Det er der ikke så meget underligt i...det er jo to sider af samme sag i princippet
Om du tæller i sql eller i php...du tæller jo stadig...
Avatar billede tanzaweb Nybegynder
24. maj 2005 - 15:07 #8
ja, var bare ike lige opmærksom på at der kun eksisterede data for maj månede i tabellen *S*SG*
Avatar billede barklund Nybegynder
24. maj 2005 - 15:20 #9
Finfin :)
Avatar billede barklund Nybegynder
24. maj 2005 - 15:26 #10
Tark for points :)
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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