MrSnoot: Wert um 1 erhöhen, Datenkbank zählt falsch oder gar nicht.

Beitrag lesen

Hio,

auch auf die Gefahr hin, dass ich mich blamiere -  ich bekomme es einfach nicht hin, einen Wert in meiner DB um 1 zu erhöhen - poste ich das jetzt :D

Im Grunde handelt es sich um einen Downloadcounter, der beim Download einer Datei um 1 hochzählt. Die gewünschten Downloads werden über Checkboxen ausgewählt, das Formular per Submit abgeschickt und die Datei dann gepackt und runtergeladen.

for($i = 1; $i <= 44; $i++)  
{  
  if(isset($_GET[$i]))  
  {  
    // Zur ID zugehörigen PDF-Pfad ermitteln  
    $abfrage = "SELECT datei, counter FROM pdf WHERE id = '$i'";  
    $ergebnis = mysql_query($abfrage);  
  
    while($row = mysql_fetch_object($ergebnis))  
    {  
      // PDF in Zip einfügen  
      $zipfile->addFileAndRead($row->datei);  
  
      // Counter erhöhen  
      $aendern = "UPDATE pdf SET counter = counter+1 WHERE id = '$i'";  
      $update = mysql_query($aendern);  
    }  
  }  
}

Mit dieser Variante wird der Counter aber immer um 2 erhöht.

Alternativ hätte ich es so gemacht:

  
      // Counter erhöhen  
      $counter = $row->counter;  
      $counter = $counter++;  
      $aendern = "UPDATE pdf SET counter = '$counter' WHERE id = '$i'";  
      $update = mysql_query($aendern);  

So wird der Counterstand aber gar nicht geändert.

Und so würde wieder um 2 erhöht.

  
  
      // Counter erhöhen  
      $counter = $row->counter;  
      $counter = $counter + 1;  
      $aendern = "UPDATE pdf SET counter = '$counter' WHERE id = '$i'";  
      $update = mysql_query($aendern);  

Eigentlich kann es sich dabei doch nur um einen Fehler in der Schleife handeln, aber wo?