---
title: "SQL för unika besökare / månad"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/42905-sql-för-unika-besökare-månad"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "UrMe"
published: "2002-05-02T07:11:17.000Z"
updated: "2002-05-03T06:11:27.000Z"
replies: 6
views: 241
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/databaser-sql/42905-sql-för-unika-besökare-månad"
---

# SQL för unika besökare / månad

## #1 — UrMe, 2002-05-02T07:11Z

Jag har är ingen hejare på SQL direkt ;)
Men det jag vill åstadkomma är att räkna unika besökare.
De unika besökarna ska räknas på följande sätt. Man räknar bara samma ip en gång per dag.

Koden ser ut så här just nu:
(Det är PHP)

```
for($manad=1;$manad<13;$manad++)
{

$totaltmanad = 0;

	for($dag=1;$dag<32;$dag++)
	{
		if($manad < 10)
		{

			if($dag < 10)
			{
				$manadu = mysql_query("SELECT count(distinct ip) as antal FROM $databas_table WHERE datum LIKE '2002-0$manad-0$dag'");
				$rowmanadu = mysql_fetch_array($manadu);
			}
			else if($dag >= 10)
			{
				$manadu = mysql_query("SELECT count(distinct ip) as antal FROM $databas_table WHERE datum LIKE '2002-0$manad-$dag'");
				$rowmanadu = mysql_fetch_array($manadu);
			}
		}
		else if($manad >= 10)
		{
			if($dag < 10)
			{
				$manadu = mysql_query("SELECT count(distinct ip) as antal FROM $databas_table WHERE datum LIKE '2002-$manad-0$dag'");
				$rowmanadu = mysql_fetch_array($manadu);
			}
			else if($dag >= 10)
			{
				$manadu = mysql_query("SELECT count(distinct ip) as antal FROM $databas_table WHERE datum LIKE '2002-$manad-$dag'");
				$rowmanadu = mysql_fetch_array($manadu);
			}
		}

		$antaldag = $rowmanadu["antal"];
		$totaltmanad = $totaltmanad + $antaldag;
	}

	$totalt[$manad] = $totaltmanad;

}
```

Undrar om det finns nå bättre sätt.. för just nu börjar databasen innehålla 30000 besök.. och det
ökar med 2000 varje dag :) .. så det går oerhört segt just detta.. 
Fråga gärna om nåt är oklart.
Tack på förhand!

Permalänk: https://www.webforum.nu/p/42905

## #2 — LarsG, 2002-05-02T08:25Z

```
query = "select count(distinct ip),month(datum) from $databas_table where datum >= '2002-01-01' and datum <= '2002-12-31' 
group by month(datum) order by month(datum)";
```

Har du något index på datumkolumnen?

Permalänk: https://www.webforum.nu/p/664075

## #3 — UrMe, 2002-05-02T08:45Z

Hehe.. den koden ser ju lite renare ut :)
Men det jag undrar över är hur jag plockar ut antalet varje månad.. kan man skriva till "as antal" efter count(distinct ip) ?..

Ja.. allt ligger ju i en tabell.. och varje besök har ett unikt ID..

Permalänk: https://www.webforum.nu/p/664088

## #4 — LarsG, 2002-05-02T10:49Z

Det går att skriva dit antal och använda det. Annars så kan man indexera i resultatarrayen med numeriska index, så index 0 motsvarar första värdet.

Det jag menade med min fråga om index var om du hade skapat ett index enbart för datum-kolumnen.

Permalänk: https://www.webforum.nu/p/664158

## #5 — UrMe, 2002-05-02T11:26Z

Okej..
Men det blir fel på SQL frågan.. 
Får inge mysql_error heller står bara "Supplied argument is not a valid mysql result...... "

Det där med att indexera resultatarrayen alltså det blir nåt sådant här eller?:

```
$nr = 0;
while($row = mysql_fetch_array($resultat))
{
	echo $row[$nr];
                $nr++;
}
```

Eller har jag missuppfattat det helt? ;)

Det där med index på enbart datum-kolumnen hajjar jag inte riktigt :) .. jag hade skapat en array bara som lagrade antalet besökare för varje månad.

Permalänk: https://www.webforum.nu/p/664182

## #6 — LarsG, 2002-05-02T18:04Z

Hur ser resten av koden ut?

Med indexering så menade jag bara 

```
while($row = mysql_fetch_array($resultat))
{
	echo $row[0];
}
```

Man kan skapa index på kolumner i en tabell i databasen för att snabba upp sökningar och sorteringar

<http://www.mysql.com/doc/C/R/CREATE_INDEX.html>

Permalänk: https://www.webforum.nu/p/664459

## #7 — UrMe, 2002-05-03T06:11Z

Glöm det som stod här förut... :r 
Jag fick till det nu.. fan vad bra!
Tack Lars G ... du är ju kungen på SQL!!!!  :e

Permalänk: https://www.webforum.nu/p/664641

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/42905-sql-för-unika-besökare-månad
