08. april 2002 - 14:21Der er
36 kommentarer og 1 løsning
Hjælp til download statistik med mysql
Hey. Nu har jeg så endelig fået lavet en mellem stor download sektion på min side, men problemet er, at hitsene bliver talt via utallige txt filer. Hvad skal jeg skrive sådan nogenlunde for at få det over i en mysql database?
For hver eneste program skal du have følgende i din database:
unikt id programnavn programsti antal hits
Så er ideen at du laver et link som hedder noget i retning af
download?id=$id for hver enkelt program - når man så klikker, skal der ligge følgende i download.php:
mysql_pconnect($hostname, $username, $password) or die("Unable to connect to SQL server"); mysql_select_db($database) or die("Unable to select database");
$result = mysql_query("SELECT * FROM tabel where ID = $ID;") or die("Failed to find program!");
//Lav $URL så den indeholder stien til filen - det bruger i header nedenfor!
mysql_query("UPDATE tabel SET totalhits = totalhits + 1 WHERE ID = $ID;") or die("Failed to increment downloadhits!");
ok det prøver jeg lige. Kommer dog først med point/kommentar senere i aften, da jeg ikke har adgang til nettet ret meget længere nu. Håber i forstår...
Prøv at finde en db-tutorial - det er meget der skal forklares... - jeg har læst 2 bøger + manualen om mysql - og der er stadig mange ting jeg ikke helt har fat på...
Min database hedder: brideonlinedk Tabellen hedder: phphits ---------------------------------------- Tabeller jeg har oprettet: id, url, hits ---------------------------------------- Det jeg bruger i headeren: <? if ($id=="1"){ $db = mysql_connect("localhost", "root", ""); mysql_select_db("brideonlinedk", $db); mysql_query("UPDATE phphits SET hits + 1 WHERE ID = $ID;") or die("Failed to increment downloadhits!"); header("location:download/php/01/klogeord.zip"); } ?> ---------------------------------------- Det jeg har skrevet i linket: <a href="d_php01.php?id=1">Kloge Ord</a>
Der er sikkert en fejl et eller andet sted, men jeg kan ikke se hvor?
ok. nu kom der et hit ind i databasen! Men nu skriver den noget om en header?
UPDATE phphits SET hits=hits+1 WHERE id=1
Warning: Cannot add header information - headers already sent by (output started at c:\phpdev2\www\d_php01.php:6) in c:\phpdev2\www\d_php01.php on line 8
ok - så er det lidt mere besværligt... (Hvornår sover du egentlig!?)
men hver gang du skal udskrive antal hits gør du:
Lav 4 variable som indeholder hostname, username, password og database - de bruges nedenfor - gem dem evt. af vejen i en .php fil som inkluderes der hvor du skal bruge den!
Dette gøres én gang: mysql_connect($hostname, $username, $password) or die("Unable to connect to SQL server"); mysql_select_db($database) or die("Unable to select database");
Mens dette gøres hver gang du skal udskrive et antal hits: $result = mysql_query("SELECT hits FROM tabel where id=1") or die("Failed to select link!"); $hits = mysql_result($result, 0); echo hits;
og så er det bare at rette id til ved hver eneste udskrift...
Med denne opbygning har du på nuværende tidspunkt bare en masse ekstraarbejde - når du smider de resterende oplysninger ind i databasen, vil du kunne se det smarte - så kan du nøjes med 5-10 liniers kode, for at lave hele fillisten!
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.