INSERT INTO Problem

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • OrangeStripes
    antwortet
    japp genau das sollte all meine erwartungen erfüllen

    Einen Kommentar schreiben:


  • Quetschi
    antwortet
    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:


  • OrangeStripes
    antwortet
    ok, danke für deine Hilfe, ich mach es jetzt so:

    PHP-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());} 
    zwar umständlich aber genau
    Zuletzt geändert von OrangeStripes; 22.03.2012, 14:44.

    Einen Kommentar schreiben:


  • OrangeStripes
    antwortet
    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:


  • Quetschi
    antwortet
    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:


  • OrangeStripes
    antwortet
    ändern... ist zum ändern der profildaten

    Einen Kommentar schreiben:


  • Quetschi
    antwortet
    Willst du nun Daten eintragen oder ändern?

    Einen Kommentar schreiben:


  • OrangeStripes
    antwortet
    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:


  • Quetschi
    antwortet
    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:


  • OrangeStripes
    antwortet
    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 2
    Zuletzt geändert von OrangeStripes; 22.03.2012, 13:24.

    Einen Kommentar schreiben:


  • Quetschi
    antwortet
    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:


  • OrangeStripes
    antwortet
    okay er erfüllt die bedingung nicht. wie sage ich ihm auf anderem wege das der button gedrückt ist?

    Einen Kommentar schreiben:


  • Quetschi
    antwortet
    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:


  • OrangeStripes
    antwortet
    ist die bedingung

    PHP-Code:
    if (isset($_POST['submit'])) 
    nicht bei klicken des Buttons erfüllt?

    Einen Kommentar schreiben:


  • Quetschi
    antwortet
    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:

Lädt...
X