login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Na download +1 optellen in db (Opgelost)

Offline willie - 31/10/2011 17:13
Avatar van willie0 Ik heb hier een download scriptje.
Maar als je iets wil downloaden zou ik graag willen.
dat er een 1 wordt bijgeteld in de db.
  1. <?php
  2.  
  3. include("connect.php");
  4.  
  5. $query = mysql_query("SELECT
  6. *
  7. FROM
  8. downloads
  9. ");
  10.  
  11. $row = mysql_fetch_assoc($query);
  12.  
  13. $tekst = nl2br($row['text']);
  14.  
  15. $id = $row['id'];
  16.  
  17. echo $row['naam'];
  18. echo "&nbsp;<a href=upload/$row[naam]>Download</a>";
  19. echo "<br />";
  20. echo $tekst;
  21. echo "<br />Sinds ";
  22. echo ''.date("d-m-Y", strtotime($row['datum'])).'';
  23. echo "&nbsp;";
  24. echo $row['aantal'];
  25. echo "&nbsp;keer gedownload.<br />";
  26. echo "<br />";
  27. ?>

Ik kom er even niet uit,
Dit is het tel script
  1. <?php
  2. if(isset($_GET['id'])) {
  3. $sGet = $_GET['id'];
  4. $hitsSql = "UPDATE download SET aantal=aantal+1 WHERE id= '".$sGet."'";
  5. mysql_query($hitsSql) or die(mysql_error());
  6.  
  7. ?>

10 antwoorden

Gesponsorde links
Offline Abbas - 31/10/2011 19:17
Avatar van Abbas Gouden medaille

Crew .NET
Haal al eens een integer-variabele uit die quotes:

  1. $hitsSql = "UPDATE download SET aantal = aantal + 1 WHERE id = " . $sGet;

Wat gaat er nog anders mis? Krijg je foutmeldingen of dergelijke?
Bedankt door: willie
Offline willie - 31/10/2011 19:23
Avatar van willie 0 Nee ik heb geen fout melding,
Ik weet alleen niet hoe ik die twee dingen samen moet koppelen.
Zowel de download en de update.
Offline Abbas - 31/10/2011 19:54
Avatar van Abbas Gouden medaille

Crew .NET
Zorg dat op pagina x een link staat naar de download-pagina y van een of ander bestand. Wanneer je op pagina y komt doe je de update en toon je de info uit de DB. That's all there is to it.. 
Offline willie - 31/10/2011 20:02
Avatar van willie 0 Ja,maar als hij dan als nog niet dedownload start,
wordt deze er wel bij geteld.
Offline vinTage - 31/10/2011 20:21
Avatar van vinTage Nieuw lid Gebruik dan een forced download en tel dan pas op.
Bedankt door: willie
Offline willie - 31/10/2011 21:26
Avatar van willie 0 IK heb gekeken, maar ben op iets anders uit gekomen.
  1. <?php
  2.  
  3. $id = $_GET['id'];
  4.  
  5. include("connect.php");
  6.  
  7. $query = mysql_query("SELECT
  8. *
  9. FROM
  10. downloads
  11. WHERE
  12. id = $id
  13. ");
  14.  
  15. $row = mysql_fetch_assoc($query);{
  16.  
  17. echo $row['naam'];
  18.  
  19. ?>
  20.  
  21. <meta http-equiv="refresh" content="5;url=index.php?pagina=autodownload&file=upload/<? $row['naam'] ?>"> <p>Thank you! The download will start in 5 seconds. If not, use this link to download the <a href="download/<? $row['naam'] ?>">file</a></p>
  22.  
  23. <?php
  24. if(isset($_GET['id'])) {
  25. $sGet = $_GET['id'];
  26. $hitsSql = "UPDATE downloads SET aantal = aantal + 1 WHERE id= $sGet";
  27. mysql_query($hitsSql) or die(mysql_error());
  28. }
  29. }
  30. ?>
Hij update dedatabase, alleen nog een klein foutje
  1. Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in D:\werkmap\sites\testweb\Root\download\autodownload.php on line 15
Offline Aar - 31/10/2011 23:44 (laatste wijziging 31/10/2011 23:44)
Avatar van Aar PHP interesse - goede foutafhandeling toepassen.
- variabelen buiten quotes
- SQL-injection is mogelijk
Bedankt door: willie
Offline Stijn - 01/11/2011 00:10
Avatar van Stijn PHP expert 1) Plaats na iedere mysql_query een or die(mysql_error());
2) Mysql_fetch_assoc geeft een 2D array terug! Dus het moet $row[0]['naam']; zijn.
Bedankt door: willie
Offline vinTage - 01/11/2011 10:57
Avatar van vinTage Nieuw lid Als iemand nu zn meta refresch uit heeft staan (zoals mij via webdevtoolbar, of andere via weet ik veel welke beveiliging) dan wordt er alsnog een download bijgeteld, als je het eerlijk wilt bijhouden, dan is een force download het enige wat betrouwbaar is.
Bedankt door: Stijn, willie
Offline willie - 01/11/2011 16:39
Avatar van willie 0 Ik heb het dus zo aangepakt.
dit werkt goed
  1. <meta http-equiv="refresh" content="5;url='upload/<? echo $sRow['naam']; ?>'"> <p> De download zal binnen 5 second starten. zo niet, gebruik deze link om te downloaden <a href="upload/<? echo $sRow['naam']; ?>"><? echo $sRow['naam']; ?></a></p>
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.22s