webForumDet fria alternativet

Behöver hjälp!!

7 svar · 238 visningar · startad av Niklasson

NiklassonMedlem sedan nov. 2000857 inlägg
#1

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/

NiklassonMedlem sedan nov. 2000857 inlägg
#2

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
#3

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

NiklassonMedlem sedan nov. 2000857 inlägg
#4

Det var inte direkt vad jag var ute efter..

------------------
http://www.niklasson.net/

Alpha IIMedlem sedan maj 20002 993 inlägg
#5

$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
#6

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]

NiklassonMedlem sedan nov. 2000857 inlägg
#7

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
#8

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

130 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)