16. august 2003 - 17:01Der er
24 kommentarer og 1 løsning
5 mest besøgte sider
Jeg skal bruge en top 5 over de mest besøgte sider. Måske bare en lille tilføjelse til det her?:
$fetchtop5 = @mysql_query("SELECT side FROM sidestats GROUP BY side ORDER BY side DESC LIMIT 0,5"); while($data = mysql_fetch_array($fetchtop5)) { $top5 .= $data['side'] . "<br>"; }
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
nej.. LIMIT 0,5 betyder bare at den skal starte ved post nul og så tælle fem frem. Det kan gøres på den anden måde, men det er nu meget godt at fortælle MySQL'en det aligevel. Jeg tror derimod du hellere skulle prøve at lave en ODER BY hits, og så helt fjerne din GROUP BY. Hvorfor har du egentligt den på? Den har da ingen rigtig funktion i den SQL-sætning..!
altså selvfølgelig hvis den hedder hits, din tabel med antal besøg ;D og så selvfølgelig en DESC som du selv skrev det i slutningen.. Altså noget lignde ORDER BY hits DESC LIMIT 0,5
hvordan kan du se hvor mange hits et link har fået? Står det i en anden tabel eller? Ellers mangler du lidt ændringer i både den side der stiller browseren videre til den eksterne side, eller i din sql, så du har en kollonne indeholdende antal klik!
$q = mysql_query("SELECT side FROM side GROUP BY side"); while($row=mysql_fetch_array($q)) { $query = mysql_query("SELECT side FROM side WHERE side='$row[side]' ORDER BY side DESC LIMIT 0,5"); $antal = mysql_num_rows($query); echo $row[side] . $antal; }
detox -> Sorry.. så ikke beskeden fra fra dig. Troede cellb10ck havde skiftet mening.
cellb10ck -> Jeg forstår ikke lige dit valg af sql-tabeller. Hvorfor opretter du ikke en tabel med et automummereringsfelt og et link, og så en anden tabel med et referencenummer, et ip-nummer og et timestamp. Det vil fylde MEGET mindre end den måde du gør det på nu, og vil gøre dit script meget lettere. Den anden måde at klare den på, er ikke helt optimal
nicklasb mener at du skal lave en tabel der fx hedder sider, med 2 felter: id (auto nr) og side (de sidder som der skal statistik over).
Så opretter du en tabel der fx hedder hits, med 4 felter: id (auto nr), sid (side id, som er det id, den pågælende side har i den anden tabel) og tid (fx timestamp)...
På den måde har du kun side navnet en gang, og gør det knapt så tungt at køre, og så overholder det også duplikerings reglen.
Hov! Jeg havde slet ikke fået prøvet dit foreslag tipsen. Det virker jo lige som det skal. Jeg skal nok overveje om det ville være smartere at lave det på en anden måde. Men tak for hjælpen alle sammen!
Tak for point - jeg vil give de andre rødder ret i at det på et tidspunkt skal laves om til en mere effektiv løsning - det bliver uhensigtsmæssigt langsomt efter du har fået mange besøg.
Ja, jeg kan godt se at det ville være lettere bare at ligge en til antal sidehits hver gang en side bliver besøgt. Grunden til at jeg gjorde det på den anden måde, var at jeg tænkte at det kunne være interessant at kunne gå ind og se hver enkelt brugers bevægelsesmønster...
Kig evt. på phpOpentracker.de, hvis du vil have en prof. løsning med de muligheder du efterspørger.
Synes godt om
Ny brugerNybegynder
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.