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?