4images Forum & Community
4images Issues / Ausgaben => Discussion & Troubleshooting => Topic started by: senloel on November 10, 2013, 06:53:09 PM
-
Hey,
hab ne kurze Frage:
Beim Submit-Klicken im Validation area soll eine sql-Abfrage ausgeführt werden, die in einer if-Bedingnung steht.
Nur: Wie schreibt man die Bedingnung?
Mit
if ( action == Submit ) {
funzt es nicht.
Ist wahrscheinlich ganz einfach, deshalb bitte nicht aufregen, PHP ist für mich manchmal noch Neuland ;)
Grüße und Danke,
Patrick
-
Hi!
Du brauchst deine SQL abfrage nur zwischen:
if ($action == "validateimages") {
.
.
.
}
schreiben, dann sollte es klappen.
mfg Andi
-
Dann wird doch aber direkt beim Aufruf die SQL-Abfrage ausgeführt, oder?
Die SQL-Abfrage updated ein Feld um einen bestimmten Wert, der aber erst beim Submit-Klicken eingetragen werden soll.
-
hast recht, setze deine SQL zwischen:
if ($action == "saveimages") {
.
.
}
-
Ok, meine Abfrage scheint nicht zu funktionieren, ich poste den Code mal hier rein:
if ($action == "saveimages") {
$image_list = (isset($HTTP_POST_VARS['image_list'])) ? $HTTP_POST_VARS['image_list'] : "";
$sql = "UPDATE ".USERS_TABLE." SET screening_number=screening_number+".$countimages['images']." WHERE user_name='".$row['user_name']."'";
Im Validation area soll gezählt werden, wieviele Bilder der jeweilige Admin freigeschaltet hat, also soll der Wert in screening_number um die jeweilige Zahl erhöht werden.
Danke und Grüße,
Patrick
-
du mußt erst den alten zählerstand aus deinen Tabellenfeld "screening_number" auslesen und in eine Variable schreiben, nennen wir die Variable "$old_screening_number".
"$row['user_name']", dieses Array gibt es nicht, "$user_info['user_name']" sollte funktionieren, besser wäre es aber wenn du die" user_id" verwendest.
$image_list = (isset($HTTP_POST_VARS['image_list'])) ? $HTTP_POST_VARS['image_list'] : "";
$count_images = count($image_list);
$sql = "UPDATE ".USERS_TABLE."
SET screening_number = ($old_screening_number + $count_images)
WHERE user_id= ".$user_info['user_id']."
";
-
So, gleich mal probiert.
Funzt aber leider noch nicht.
Hier mal der Code:
if ($action == "saveimages") {
$image_list = (isset($HTTP_POST_VARS['image_list'])) ? $HTTP_POST_VARS['image_list'] : "";
$sql = "SELECT screening_number AS old_screening_number
FROM ".USERS_TABLE." WHERE user_id=".$user_info['user_id']."";
$row = $site_db->query_firstrow($sql);
$old_screening_number = $row['old_screening_number'];
$count_images = count($image_list);
$sql = "UPDATE ".USERS_TABLE."
SET screening_number = ($old_screening_number + $count_images)
WHERE user_id= ".$user_info['user_id']."
";
-
Hm.. muß funktionieren, setze deine Abfrage nach:
if (!empty($image_list)) {
Das Alias in der SQL ist unnötig.
if (!empty($image_list)) {
$sql = "SELECT screening_number
FROM ".USERS_TABLE."
WHERE user_id=".$user_info['user_id']."";
$row = $site_db->query_firstrow($sql);
$old_screening_number = $row['screening_number'];
$count_images = count($image_list);
$sql = "UPDATE ".USERS_TABLE."
SET screening_number = ($old_screening_number + $count_images)
WHERE user_id= ".$user_info['user_id']."
";
$site_db->query($sql);
-
Hm, habs an der Stelle eingesetzt, funktioniert aber immernoch nicht.
Hab mal probiert nur das Ergebnis der Abfrage auszugeben, also mit
".$row['screening_number']."
, aber es wird kein Ergebnis angezeigt.
Eventuell habe ich irgendeinen Fehler beim Anlegen der Feldes in der Tabelle gemacht?
Da gibt es doch vachar, not null default usw.?
-
na schau doch ganz einfach in die DB hinein, ob ein wert drinnen steht...
aber ich denke mir halt wenn es das Tabellenfeld nicht gibt, würde es eine Fehlermeldung geben.
-
Jo, steht einer drin: "0" ;)
-
so habe den Beitrag editiert:
http://www.4homepages.de/forum/index.php?topic=31390.msg164682#msg164682
-
so habe den Beitrag editiert:
http://www.4homepages.de/forum/index.php?topic=31390.msg164682#msg164682
Klappt ;)
Vielen Dank für deine Hilfe!