26. september 2001 - 23:03Der er
46 kommentarer og 1 løsning
styr på downloads - ponit fåes fra andet spørgsmål
JEg har oprettet et spørgsmål her http://www.eksperten.dk/spm/114086 men er villig til at give 70 point mere hvis du/I kan finde en database der gør lige præcis det jeg har brug for: Nemlig holde styr på filer der kan downloades - holde styr på hvor mange filer der er - hvor mange gange de er downloaded - og selvfølgelig også et script til at skrive det ud (php)
For hvad - jeg stiller ikke det samme spørgsmål to gange - jeg har her omformuleret det spørgsmål jeg stillede på det ovenstående link - og siger nu at jeg er villig til at give flere point til den der kan give mig et svar \"PÅ dET NYE SPØRGSMÅL\"
<? if($download){ $nyantal=$antal+1; mysql_query(\"update antaldownloads set antal=\'$nyantal\' where filnavn=\'$download\'\"); }
$result=mysql_query(\"select * from antaldownloads order by antal desc limit 1\"); $row=mysql_fetch_array($result); echo \"$row[filnavn] er hentet flest gange. ($row[antal])\";
$result=mysql_query(\"select * from antaldownloads order by filnan asc\"); while($row=mysql_fetch_array($result)){ echo \"<a href=\\\"download.php?download=$row[filnavn]&antal=$row[antal]\\\">$row[filnavn]</a><br>\"; }
echo \"<br><br><hr>top 10<br><br>\"; $result=mysql_query(\"select * from antaldownloads order by antal desc limit 10\"); while($row=mysql_fetch_array($result)){ echo \"$row[filnavn] ($row[antal])\"; }
<? $connection = mysql_connect(\"localhost\",\"user\",\"pass\") or die(\"<center><h2>Database down, sorry for the probs.<br></h2></center>\"); mysql_select_db(\"db\", $connection);
if($download){ $res=mysql_query(\"select antal from antaldownloads where fil=\'$download\'\"); $res2=mysql_fetch_array($res); $nyantal=$res2[antal]+1; mysql_query(\"update antaldownloads set antal=\'$nyantal\' where fil=\'$download\'\"); header(\"Location :$download\"); }
$result=mysql_query(\"select * from antaldownloads order by antal desc limit 1\"); $row=mysql_fetch_array($result); echo \"$row[fil] er hentet flest gange. ($row[antal])\";
echo \"<br><br>\";
$result=mysql_query(\"select * from antaldownloads order by fil asc\"); while($row=mysql_fetch_array($result)){ echo \"<a href=\\\"download.php?download=$row[fil]\\\">$row[fil]</a><br>\"; }
echo \"<br><br><hr>top 10<br><br>\"; $result=mysql_query(\"select * from antaldownloads order by antal desc limit 10\"); while($row=mysql_fetch_array($result)){ echo \"$row[fil] ($row[antal])<br>\"; }
?>
- Har lige testet den, det virker fint, du kan evt. bruge phpmyadmin til at tilføje dine filer...
hvordan bruger jeg PHPmyadmin til at tilføje filer - jeg har fået selve scriptet og databasen til at virke - Og kan man med dette script have flere kategorier - og få vist hvor mange filer der er i de forskellige kategorier ??
Nope, det viser alle filer på samme side, skal det i kategorier skal der lige et ekstra felt ind i databasen, kategori :)
du skal ikke bruge phpmyadmin til at tilføje filer, dette script går ud fra de alle lægger i samme dir som scriptet, så bare skriv filnavnet og 0 i antal, så listes filen ...
kategorier id int not null auto_increment, navn varchar(200), primary key(id));
antaldownloads fil varchar(200), antal int, katid int, primary key(id));
Når du vil oprette en ny kategori skal du bare lave en ny post i kategorier. insert into kategorier (navn) values (\'titel på kategori\');
Når du vil tilføje en ny fil, skal du lave en ny post i antaldownloads. insert into antaldownloads (fil, antal, katid) values (\'filnavn\', 0, \'katid\');
Dine kat ids, kan ses på forsiden af download.php hvis du kikker i status linjen mens du holder musen over linket...
Kilden til hele herligheden følger ___
<? $connection = mysql_connect(\"localhost\",\"download\",\"download\") or die(\"<center><h2>Database down, sorry for the probs.<br></h2></center>\"); mysql_select_db(\"download\", $connection);
if($download){ $res=mysql_query(\"select * from antaldownloads where id=\'$download\'\"); $res2=mysql_fetch_array($res); $nyantal=$res2[antal]+1; mysql_query(\"update antaldownloads set antal=\'$nyantal\' where id=\'$download\'\"); header(\"Location: $res2[fil]\"); }
if($kat!=\"\"){ $r=mysql_query(\"select navn from kategorier where id=\'$kat\'\"); $rr=mysql_fetch_array($r); echo \"<center><h1>$rr[navn]</h1><br><br></center>\";
$k=mysql_query(\"select id from antaldownloads where katid=\'$kat\'\"); if(mysql_num_rows($k)==0){ echo \"Denne kategori er tom.\"; exit; }
$result=mysql_query(\"select * from antaldownloads where katid=\'$kat\' order by antal desc limit 1\"); $row=mysql_fetch_array($result); echo \"$row[fil] er hentet flest gange. ($row[antal])\";
echo \"<br><br>\";
$result=mysql_query(\"select * from antaldownloads where katid=\'$kat\' order by fil asc\"); while($row=mysql_fetch_array($result)){ echo \"<a href=\\\"download.php?download=$row[id]&kat=$kat\\\">$row[fil]</a><br>\"; }
echo \"<br><br><hr>top 10<br><br>\"; $result=mysql_query(\"select * from antaldownloads where katid=\'$kat\' order by antal desc limit 10\"); while($row=mysql_fetch_array($result)){ echo \"$row[fil] ($row[antal])<br>\"; }
}else{ //Ingen kategori er valgt.
$result=mysql_query(\"select * from kategorier order by navn asc\"); $num=mysql_num_rows($result);
if($num>0){ while($row=mysql_fetch_array($result)){ echo \"<a href=\\\"download.php?kat=$row[id]\\\">$row[navn]</a><br>\"; } }else{ echo \"Der er ikke oprettet nogle kategorier\"; }
Det virker ikke lige helt efter hensigten For det første - så kommer man - når man går ind på siden - kun til at se - de kategorier man har - og ikke den top 5 eller top 10 der er . For det andet - så viser den en fejl når man klikker på kategorien ???
jeg f[r ingen fejl, husk at filen skal findes, hvis du vil teste, saa lav linjen header ... om til //header ... *saa vidersender den ikke
beklager tegnene, win syndes lige jeg skulle havde amerikansk tast...
<? $connection = mysql_connect(\"localhost\",\"download\",\"download\") or die(\"<center><h2>Database down, sorry for the probs.<br></h2></center>\"); mysql_select_db(\"download\", $connection);
if($download){ $res=mysql_query(\"select * from antaldownloads where id=\'$download\'\"); $res2=mysql_fetch_array($res); $nyantal=$res2[antal]+1; mysql_query(\"update antaldownloads set antal=\'$nyantal\' where id=\'$download\'\"); header(\"Location: $res2[fil]\"); }
$result=mysql_query(\"select * from antaldownloads order by antal desc limit 1\"); $row=mysql_fetch_array($result); echo \"$row[fil] er hentet flest gange. ($row[antal])\";
echo \"<br><br>\";
echo \"<br><br><hr>top 10<br><br>\"; $result=mysql_query(\"select * from antaldownloads order by antal desc limit 10\"); while($row=mysql_fetch_array($result)){ echo \"$row[fil] ($row[antal])<br>\"; }
if($kat!=\"\"){ $r=mysql_query(\"select navn from kategorier where id=\'$kat\'\"); $rr=mysql_fetch_array($r); echo \"<center><h1>$rr[navn]</h1><br><br></center>\";
$k=mysql_query(\"select id from antaldownloads where katid=\'$kat\'\"); if(mysql_num_rows($k)==0){ echo \"Denne kategori er tom.\"; exit; }
$result=mysql_query(\"select * from antaldownloads where katid=\'$kat\' order by fil asc\"); while($row=mysql_fetch_array($result)){ echo \"<a href=\\\"download.php?download=$row[id]&kat=$kat\\\">$row[fil]</a><br>\"; }
}else{ //Ingen kategori er valgt.
$result=mysql_query(\"select * from kategorier order by navn asc\"); $num=mysql_num_rows($result);
if($num>0){ while($row=mysql_fetch_array($result)){ echo \"<a href=\\\"download.php?kat=$row[id]\\\">$row[navn]</a><br>\"; } }else{ echo \"Der er ikke oprettet nogle kategorier\"; }
Det med fejlen det har jeg fundet ud af hvorfor - jeg har ikke rettet det idet jeg ikke ved hvordan man gør - men når man holder musen over den kategori man har lavet - står der bare download.php?kat= og ikke mere - lige meget hvor mange kategorier man laver - og jeg skulle være helt ved siden af hvis jeg ikke har lavet det som du har skrevet ???
JEg fik ikke lige fat i hvad du mente med det sidste ??\"paster den her når den er færdig ( du har accepteret ) ?? MEn ellers ser den fed ud - man kunne evt. ikke få den til at lade være med at skrive endelsen på filen ??
<? $connection = mysql_connect(\"localhost\",\"download\",\"download\") or die(\"<center><h2>Database down, sorry for the probs.<br></h2></center>\"); mysql_select_db(\"download\", $connection);
if($download){ $res=mysql_query(\"select * from antaldownloads where id=\'$download\'\"); $res2=mysql_fetch_array($res); $nyantal=$res2[antal]+1; mysql_query(\"update antaldownloads set antal=\'$nyantal\' where id=\'$download\'\"); header(\"Location: $res2[fil]\"); }
$result=mysql_query(\"select * from antaldownloads order by antal desc limit 1\"); $row=mysql_fetch_array($result); $fil2=split(\"\\.\",$row[fil]); echo \"<b>$fil2[0] er hentet flest gange. ($row[antal])</b>\";
echo \"<br><br>\";
echo \"<br><br><hr><b>Top 10</b><br><br>\"; $result=mysql_query(\"select * from antaldownloads order by antal desc limit 10\"); while($row=mysql_fetch_array($result)){ $fil2=split(\"\\.\",$row[fil]); echo \"$fil2[0] ($row[antal])<br>\"; }
if($kat!=\"\"){
echo \"<a href=\\\"download.php\\\">Tilbage til oversigten</a><br><br>\";
$r=mysql_query(\"select navn from kategorier where id=\'$kat\'\"); $rr=mysql_fetch_array($r); echo \"<center><h1>$rr[navn]</h1><br><br></center>\";
$k=mysql_query(\"select id from antaldownloads where katid=\'$kat\'\"); if(mysql_num_rows($k)==0){ echo \"Denne kategori er tom.\"; exit; }
$result=mysql_query(\"select * from antaldownloads where katid=\'$kat\' order by fil asc\"); while($row=mysql_fetch_array($result)){ $fil2=split(\"\\.\",$row[fil]); echo \"<a href=\\\"download.php?download=$row[id]&kat=$kat\\\">$fil2[0]</a><br>\"; }
}else{ //Ingen kategori er valgt. echo \"<br><br><br><center><b>Kategorier</b><br>\"; $result=mysql_query(\"select * from kategorier order by navn asc\"); $num=mysql_num_rows($result);
if($num>0){ while($row=mysql_fetch_array($result)){ echo \"<a href=\\\"download.php?kat=$row[id]\\\">$row[navn]</a><br>\"; } }else{ echo \"Der er ikke oprettet nogle kategorier\"; }
Har du oprettet forbindelse til din mysql db ? jeg har lige kørt dette, og det virker !
<? $connection = mysql_connect(\"localhost\",\"download\",\"download\") or die(\"<center><h2>Database down, sorry for the probs.<br></h2></center>\"); mysql_select_db(\"download\", $connection);
mysql_query(\"create table kategorier( id int not null auto_increment, navn varchar(200), primary key(id))\") or die(mysql_error());
mysql_query(\"create table antaldownloads( id int not null auto_increment, fil varchar(200), antal int, katid int, primary key(id))\") or die(mysql_error());
mysql_query(\"insert into kategorier (navn) values (\'test1\')\"); mysql_query(\"insert into kategorier (navn) values (\'test2\')\"); mysql_query(\"insert into kategorier (navn) values (\'test3\')\"); mysql_query(\"insert into antaldownloads (fil, antal, katid) values (\'a.zip\', 0, 1)\"); mysql_query(\"insert into antaldownloads (fil, antal, katid) values (\'b.zip\', 0, 2)\"); mysql_query(\"insert into antaldownloads (fil, antal, katid) values (\'c.zip\', 0, 3)\"); ?>
Den kommer og siger internal fejl 500 ?? Du får lige dine point - jeg prøver og kigger på det med ved umiddelbart ikke hvad der er galt - man skal ikke sætte et eller andet sjovt op inde i Apache for at få det til at køre ???
Hvis jeg nu vil give dig 60 point mere - kan du så lave det sådan at man kan lave underkategorier + skrive lidt tekst til hvert download - og gøre det sådan at man inde i underkategorien også ud fra hver download kan se hvor mange kan det er blevet downloadet :)
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.