Ich hab folgendes Problem:
Wollte einen Downloadcounter machen, und bin dann auf dieses script gestoßen. Leider funktioniert es nicht so wie es soll…
In der Datenbank hab ich die Tabelle d_counter angelegt, darin eine spalte mit DATEI, HITS, URL
die seiten sehen so aus:
if($link == „download“ ) {
$ausgabe=mysql_query(„update $mTabelle set hits=hits+1 where datei=’$id’“);
$ausgabe=mysql_fetch_array(mysql_query(„select url as url from $mTabelle where datei=’$id’“));
mysql_close($conn);
header("Location: ".$ausgabe[url]);
} else {
$ausgabe=mysql_fetch_array(mysql_query(„select hits as hits from $mTabelle where datei=’$id’“));
echo $ausgabe[hits];
}
?>
$ausgabe=mysql_query(„update $mTabelle set hits=hits+1
where datei=’$id’“);
das geht so nicht. der ausdruck hits=hits+1 ist nicht erlaubt. das erste ‚hits‘ ist dein feld, das zweite ‚hits‘ soll den wert des feldes beschreiben.
du muesstest eine unterabfrage machen, die den wert bestimmt. das ist aber bei mysql auch nicht erlaubt.
am einfachsten machst du vorher ein select auf das feld und laesst dir den wert incrementiert ausgeben. und den setzt du dann statt diesem ausdruck ein.
$ausgabe=mysql_query(„update $mTabelle set hits=hits+1
where datei=’$id’“);
das geht so nicht. der ausdruck hits=hits+1 ist nicht erlaubt.
das erste ‚hits‘ ist dein feld, das zweite ‚hits‘ soll den
wert des feldes beschreiben.
du muesstest eine unterabfrage machen, die den wert bestimmt.
das ist aber bei mysql auch nicht erlaubt.
Natuerlich geht dieser Ausdruck, das ist nicht sein Problem
In der Datenbank hab ich die Tabelle d_counter angelegt,
darin eine spalte mit DATEI, HITS, URL
die seiten sehen so aus:
Wenn deine Datei in diesem Falle wirklich nur test heisst, ist das kein Problem. Du solltest die URL aber auch richtig machen, in dem Falle also ala http://www.deinedomain.de/test und, ich persoenlich wuerde in die Datenbank auch noch ein Feld id als Primary Key einfuegen.
if($link == „download“ ) {
$ausgabe=mysql_query(„update $mTabelle set hits=hits+1
where datei=’$id’“);
$ausgabe=mysql_fetch_array(mysql_query(„select url as
url from $mTabelle where datei=’$id’“));
mysql_close($conn);
header("Location: ".$ausgabe[url]);
ignorier mein oberes posting…
ooops…
da hast du recht. das ist doch zulaessig.
neuer versuch:
im html-teil im aufruf der funktion index.php verwendet michael ein fragezeichen zur trennung von zwei parametern. da sollte doch wohl eher ein ‚&‘ stehen.
ob das aber sein problem behebt hab ich jetzt nicht ausprobiert.
gruss, stefan
(der in zukunft besser nachschaut, bevor er einfach sowas schreibt)
Natuerlich geht dieser Ausdruck, das ist nicht sein Problem
hmm…also irgendwie kapier ich das jetzt nicht, trotz aller eurer vielen fehlern klappt es schon, wenn ich nur das ? durch das & ersetze. Danke nochmal an alle!
also, wie gesagt, der Download funktioniert jetzt mit dem script, und das feld „hits“ wird auch korrekt hochgezählt.
Leider hab ich jetzt noch n Problem
Wie kann ich denn am besten die klicks einbinden?
mit ssi hab ich’s probiert, geht auch soweit einwandfrei, nur ist es so, dass auf meiner page alle seite per php include() in eine Tabelle geladen werden, und deswegen erkennt der Server die ssi-befehle nicht mehr. Kann man das auch mit php machen? mit include macht er’s irgendwie nicht. Als link muss man bloß angeben: index.php?id=ID
Weiss noch jemand was?
Danke nochmal
Michael