Ik wil graag het volgende rijtje produceren:

1: ip: 255.23.452.3.4 (9 keer)
2: ip: 255.23.452.3.4 (6 keer)
3: ip: 255.23.452.3.4 (5 keer)
4: ip: 255.23.452.3.4 (3 keer)
5: ip: 255.23.452.3.4 (1 keer)
6: ip: 255.23.452.3.4 (1 keer)

Dus, een lijst ip-adressen gesorteerd op aantal van hoog naar laag.

Zo staat het in mijn DB:

tabel:
--bezoekers--
ip INT ( 12 ) auto_increment PRIMARY KEY
ip varchar(255)
datum datetime
useragent varchar(255)

Elke keer dat je de site bezocht wordt er een nieuwe rij ingevoegd met ip, useragent en datum.

Met deze code kan ik een lijst met unieke ip adressen laten zien, en het aantal erachter:
<?php	$sql2 = "SELECT DISTINCT(ip)
	FROM bezoekers ";
	$res2 = mysql_query($sql2) or die("foutje: sql: <br> ".$sql2."<br>error:<br>".mysql_error());
	for ($x = 1; $rij2 = mysql_fetch_assoc($res2); $x++)
	{
		echo $x.': <a class="extlink" href="http://'.$rij2['ip'].'">'.$rij2['ip'].'</a>';
		$sqlx = "SELECT COUNT(ip) as ipaantal FROM bezoekers WHERE ip = '".$rij2['ip']."'";
		$resx = mysql_query($sqlx) or die("foutje: sql: <br> ".$sqlx."<br>error:<br>".mysql_error());
		$rijx = mysql_fetch_assoc($resx);
		echo ' ('.$rijx['ipaantal'].' keer)<br />';
	} 
?>


Maar hoe kan ik nu deze lijst laten sorteren op aantal?

Groet

Boris
Waarom doe je het op die manier, het kan toch in 1 keer?

"SELECT COUNT(ip) AS visits, ip FROM tabel GROUP BY ip ORDER BY visits"

(ik weet het niet zeker, maar volgens mij moet zoiets wel kunnen werken)
Ja klopt:-p bedankt :-)

Maar wat doet GROUP precies?
Die groepeerd de gegevens van, in dit geval de id's. Bij een count, telt die het aantal keer dat hetzelfde ip voorkomt.
Als je hetvertaald, zegt het het eigenlijk ook wel:

SELECTEER TEL(id) AS aantal, id VAN tabel GROEPEER OP id SORTEER OP aantal
Oftewel:

Tel het aantal rijen en noem die aantal
selecteer het ip adres
groeper op ip
en
sorteer op aantal

Oké nu snap ik het :-D
Thx:-D

Reageren