Jag har ett statistikscript som loggar alla unika besökare på sidan. När jag loggar
så för jag bland annat in $HTTP_USER_AGENT i tabellen. Då kan ju resultatet t.ex se ut så här:
Mozilla/4.0 (compatible; MSIE 5.5; Windows 98)
När jag sedan vill visa statistiken i webbläsaren så har jag ett antal olika SQL-querys
som får ut besökare per dag osv. Jag har lite problem med browser och OS-queryn.
Idag ser queryn för browser ut så här:
SELECT browser, count(*) AS antal FROM statistik WHERE tid BETWEEN '$from_stamp' AND '$tom_stamp' GROUP BY browser ORDER BY 2 DESC LIMIT 10
På så sätt kan jag ju med en while visa de olika resultaten i tabellen. Nu visar ju denna
inte riktigt samma som jag vill. Jag skulle vilja visa detta:
Antal: Browser:
78 Internet Explorer 5.5
65 Internet Explorer 5.01
13 Netscape Navigator 4.71
osv..
Likväl:
Antal: OS:
78 Windows 98
65 Windows ME
55 Windows XP
osv..
Om jag kör 'strstr' i while-satsen så kan ju resultatet bli t.ex Windows 98 flera gånger, beroende på
hur resten av texten ser ut. Skall man lägga resultatet i en array och sen köra igenom den och ersätta?
Behöver hjälp..
------------------
http://www.niklasson.net/
Ingen som fattar eller? ;)
Kontakta mig gärna på ICQ #14199362 om du tror att du kan hjälpa mig.
------------------
http://www.niklasson.net/
pimmeMedlem sedan sep. 20011 086 inlägg while($row = mysql_Fetch_object($query)){
$browser[$row->browser] += $row->antal;
}
foreach($browser as $brows => $antal){
echo "$antal $brows<br>";
}
är inte säker, men något sådant borde fungera
------------------
//pimme
Det var inte direkt vad jag var ute efter..
------------------
http://www.niklasson.net/
Alpha IIMedlem sedan maj 20002 993 inlägg $ie5 = mysql_num_rows(mysql_query("SELECT * FROM statestik WHERE browser = 'IE 5' and tid BETWEEN '$from_stamp' AND '$tom_stamp'"));
echo $ie5 . " surfar med Internet Explorer 5";
etc
------------------
"Det blir bara stjärnor när jag skall skriva in lösenordet."
- Återkommande fråga på Spray support
UrMeMedlem sedan apr. 2001762 inlägg Så här har jag gjort:
Jag har en SQL-fråga som hämtar de olika webläsarnamnen:
$browser = mysql_query("SELECT DISTINCT browser FROM visitors");
Sedan så loopar jag de olika webläsarnamnen och räknar antalet:
while ($rowbrowser = mysql_fetch_array($browser)) {
$whatbrowser = $rowbrowser["browser"];
$browsercount = mysql_query("SELECT count(*) as browserantal FROM visitors WHERE browser='$whatbrowser'");
$antalbrowser = mysql_fetch_array($browsercount);
echo "<tr><td width=100><span class=\"Text\">";
echo ($whatbrowser);
echo "</td><td width=10><span class=\"Text\">";
echo($antalbrowser["browserantal"]);
echo "</td></tr>";
Humm.. hoppas du förstår koden
Kanske inte den bästa koden.. men den funkar :)
------------------
You play by the rules, you die by the rules
[Redigerat av UrMe den 07 nov 2001]
UrMe: Det är ju precis samma sak som jag gör redan... ;)
Alpha II: Blir lite väl jobbigt, men kanske man kan skapa en textfil eller en array vi dsidan om med alla alternativ och sedan köra en foreach eller nåt?
Nån som kan :q
------------------
http://www.niklasson.net/
UrMeMedlem sedan apr. 2001762 inlägg Humm...
den koden jag visade visar typ exakt det du frågade efter från början alltså:
Antal: Browser:
78 Internet Explorer 5.5
65 Internet Explorer 5.01
13 Netscape Navigator 4.71
osv..
eller så är jag nog bara trött :)
Vill du skriva om din befintliga kod snyggare?
------------------
You play by the rules, you die by the rules