(MySQL) + (PHP) immer 1 zuviel???
mabu
- datenbank
Hi!
Ich trage mittels PHP eine Zahl in einen bereits vorhanden Datensatz ein, das mache ich so:
echo $banner[views];
mysql_query ("UPDATE scm".$nr."_bannerrotation SET views='$banner[views]' WHERE id=$banner[id]");
Das echo ist zum überprüfen.
Das Problem: Beim echo kommtjedesmal eine Zahl, eingetragen wird jedoch die Zahl+1. Ich weiß einfach nicht, an was das liegen kann. die Befehle kommen so wie hier genau hintereinander und auch die Spalte hat keine besonderen Eigenschaften definiert.
Vielleicht weiß jemand an was das liegt, vielleicht weiß es aber auch niemand.
Ich bin wirklich am verzweifeln...
mfg,
mabu
Halihallo mabu
echo $banner[views];
mysql_query ("UPDATE scm".$nr."_bannerrotation SET views='$banner[views]' WHERE id=$banner[id]");
Für was steht $nr? - In (fast) jedem Fall ist es intelligenter und sauberer, diese
$nr als Attribut in der Tabelle scm_bannerrotation zu speichern und einen Index darauf
zu legen, als für jede neue $nr eine neue Tabelle zu erstellen.
Das Problem: Beim echo kommtjedesmal eine Zahl, eingetragen wird jedoch die Zahl+1. Ich weiß einfach nicht, an was das liegen kann. die Befehle kommen so wie hier genau hintereinander und auch die Spalte hat keine besonderen Eigenschaften definiert.
Du hast irrelevanten Code gepostet. Das hat nichts mit dem UPDATE zu tun, sondern mit
dem PHP-Code vor dem echo.
Vielleicht weiß jemand an was das liegt, vielleicht weiß es aber auch niemand.
Nur wenn du Code _vor_ dem echo postest.
Viele Grüsse
Philipp
Moin!
echo $banner[views];
mysql_query ("UPDATE scm".$nr."_bannerrotation SET views='$banner[views]' WHERE id=$banner[id]");
Mach das mal anders:
$sql="UPDATE scm".$nr."_bannerrotation SET views='$banner[views]' WHERE id=$banner[id]";
echo "<hr>$sql<hr>";
Staune und ändere das in:
$sql="UPDATE scm".$nr."_bannerrotation SET views='".$banner[views]."' WHERE id=".$banner[id];
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®
Hi,
Staune und ändere das in:
$sql="UPDATE scm".$nr."_bannerrotation SET views='".$banner[views]."' WHERE id=".$banner[id];
das is besser ;-)
$sql="UPDATE scm".$nr."_bannerrotation SET views=views+1 WHERE id=".$banner[id];
friedfertig zurück ;-)
Grüße
Chris
Moin!
friedfertig zurück ;-)
Fürwahr! Du hast Recht. Ich habe da wohl was verschlampt.
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®
Moin!
Ich trage mittels PHP eine Zahl in einen bereits vorhanden Datensatz ein, das mache ich so:
echo $banner[views];
Frage: Welchen Wert hat die Konstante "views"?
mysql_query ("UPDATE scm".$nr."_bannerrotation SET views='$banner[views]' WHERE id=$banner[id]");
c
Stattdessen zur Kontrolle machst du am besten sowas:
$sqlquery = "UPDATE scm".$nr."_bannerrotation SET views='$banner[views]' WHERE id=$banner[id]";
echo $sqlquery;
mysql_query($sqlquery);
Das echo ist zum überprüfen.
...der falschen Information.
Nicht der Wert irgendeiner Variablen ist interessant, sondern der SQL-String, den die Datenbank kriegt.
Dass es reichlich unsinnig ist, wie du deine Datenbankstruktur angelegt hast, wurde schon gesagt. Du brauchst genau _eine_ Tabelle für alle Banner-Views, die Information "Nummer" gehört nicht in den Tabellennamen, sondern in die Daten, die in der Tabelle drinstehen. Alles andere ist datenbanktechnisch Unsinn.
- Sven Rautenberg