INSERT INTO Problem
Einklappen
X
-
Was ist denn das?
Ich denk nicht mehr drüber nach - wenn es so funktioniert, wie du es haben möchtest, dann gut.
Einen Kommentar schreiben:
-
ok, danke für deine Hilfe, ich mach es jetzt so:
zwar umständlich aber genauPHP-Code:if (isset($_POST['SAVE'])){
if (htmlspecialchars($_POST['street'] == '')) {} else {
$connect = mysql_connect($db_server, $db_user, $db_password) or die(mysql_error());
mysql_select_db($db_databank) or die(mysql_error());
mysql_query('UPDATE ???
SET STREET = "'.mysql_real_escape_string(trim($_POST['street'])).'"
WHERE UID="' . $_SESSION['UID'] . '"') or die(mysql_error());}
if (htmlspecialchars($_POST['zip'] == '')) {} else {
$connect = mysql_connect($db_server, $db_user, $db_password) or die(mysql_error());
mysql_select_db($db_databank) or die(mysql_error());
mysql_query('UPDATE ???
SET ZIP = "'.mysql_real_escape_string(trim($_POST['zip'])).'"
WHERE UID="' . $_SESSION['UID'] . '"') or die(mysql_error());}
Zuletzt geändert von OrangeStripes; 22.03.2012, 14:44.
Einen Kommentar schreiben:
-
nur die ID ist primary und unique, und die ist nicht in der liste zur bearbeitung.
ON DUPLICATE KEY UPDATE
wäre eine lösung oder?
Einen Kommentar schreiben:
-
Dann solltest du dein Statement so ändern, dass es keinen Datensatz einfügt, sondern einen Datensatz ändert.
Und nochwas: eine deiner Spalte MUSS ein PRIMARY-KEY oder UNIQUE-INDEX sein - sonst hättest du die Fehlermeldung 'Duplicate entry '' for key 2' nicht erhalten!
Einen Kommentar schreiben:
-
keines der felder ist unique.
könnte UPDATE INTO funktionieren?
da ja schon werte eingetragen sind die geändert werden sollen,
natürlich nur die die auch ausgefüllt sind
Einen Kommentar schreiben:
-
Jetzt führt er den Insert aus - die Fehlermeldung erhältst du, weil du vermutlich eine Spalte als Primary-Key oder zumindest als UNIQUE definiert hast, du für diese Spalte aber auto_increment nicht gesetzt hast bzw. du nicht selber dafür sorgst, dass eindeutige Werte in die Spalte gelangen.
Einen Kommentar schreiben:
-
okay ich musste submit durch SAVE ersetzen, jetzt spuckt er auch was aus
Duplicate entry '' for key 2
array(15) { ["street"]=> string(1) "1" ["zip"]=> string(1) "2" ["city"]=> string(1) "3" ["country"]=> string(1) "4" ["web"]=> string(1) "5" ["facebook"]=> string(1) "6" ["youtube"]=> string(1) "7" ["soundcloud"]=> string(1) "8" ["icq"]=> string(1) "9" ["msn"]=> string(2) "10" ["skype"]=> string(2) "11" ["image"]=> string(2) "12" ["genres"]=> string(2) "13" ["about"]=> string(2) "14" ["SAVE"]=> string(4) "SAVE" } Duplicate entry '' for key 2Zuletzt geändert von OrangeStripes; 22.03.2012, 13:24.
Einen Kommentar schreiben:
-
Jetzt würd ich mir mal ansehen, was in _POST tatsächlich drinsteht.
Mach VOR der if-Bedingung mal ein var_dump($_POST) rein und sieh dir an, ob im POST-Array das drinsteht, was du dir erwartest.
Einen Kommentar schreiben:
-
okay er erfüllt die bedingung nicht. wie sage ich ihm auf anderem wege das der button gedrückt ist?
Einen Kommentar schreiben:
-
Augenscheinlich ja - du solltest aber dennoch prüfen, ob dein Script auch tatsächlich dort reinspringt, wo du es erwartest.
Mach einfach mal sowas:PHP-Code:if (isset($_POST['submit'])) {
echo "Die Bedingung ('submit' ist gesetzt) ist erfüllt!";
// Dein weiterer Code
}
Einen Kommentar schreiben:
-
ist die bedingung
nicht bei klicken des Buttons erfüllt?PHP-Code:if (isset($_POST['submit']))
Einen Kommentar schreiben:
-
Testausgabe gemacht, ob deine IF-Bedingung auch erfüllt ist?
Schreib dein Statement mal nicht direkt in mysql_query() rein, sondern in einer Variable - lass dir diese ausgeben und sieh dir das Statement an, ob du evtl. einen Fehler erkennen kannst. Nimm das Statement und versuche es über PhpMyAdmin abzusetzen.
Einen Kommentar schreiben:
Willst du nun Daten eintragen oder ändern?
Einen Kommentar schreiben: