MySQL Datensatz updaten

  • Hallo,
    habe mal wider ein Problem. Ich möchte eine Seite erstellen wo ich Datensäätze aus MySQL updaten kann. Hab mir eine Vorlage genommen und auf meine Bedürftnisse geändert. Jedoch wird der Eintrag nicht aktualisiert. Falls sich jemand das Liebenswerterweise ansehen könnte, was ich falsch mache.


    Datei1

    Datei 2


    Datei 3

    Hier mal ein Link zur Seite

    http://rsm-liga.de/SW/GermanEliteWeb/Teams2011a.php

  • 1.) Empfehlung: Sollte zwar den Fehler nicht beheben aber schreibe solche Befehle wie "select", "from", "where", "set" immer groß. Also SELECT, FROM, WHERE, SET. Das erleichtert den Überblick zu behalten weil dann eindeutig ist was Befehl und was Daten sind!
    2.) Tipp: Baue nach deinem Connect ein if mit "die" ein, außerdem baue so lange wie das Script noch nicht vollständig funktioniert ein Error-Report an den Anfang des Scripts dann hilft dir php bei der Lösung indem es sagt wo es "abkackt".
    Bsp. die-Connect

    PHP
    $con = mysql_connect("localhost","peter","abc123");
    if (!$con)
    {
    die('Could not connect: ' . mysql_error());
    }

    Bsp. Error-Report (als erste Codezeile nach <?php

    PHP
    error_reporting(E_ALL);

    3.) zu deinem Fehler, glaube ich zumindest das es der ist:
    falsch

    PHP
    $sqlab = "update Transfers set" 
    . " Vorname = '" . $_POST['nn'] . "',"
    . " Nachname = '" . $_POST['vn'] . "',"
      . " FahrerID = " . $_POST['pn'] . "," // Ab hier hast du die einfachen Anführungsstriche vergessen also die '
    . " neuesTeam = '" . $_POST['ge'] . "',"
    . " Tread = '" . $_POST['gt'] . "',"
    . " where FahrerID = " . $_POST['oripn'];
    mysql_query($sqlab);

    richtig

    PHP
    $sqlab = "UPDATE Transfers SET" 
    . " Vorname = '" .$_POST['nn']. "',"
    . " Nachname = '" .$_POST['vn']. "',"
    . " FahrerID = '" .$_POST['pn']. "',"
    . " neuesTeam = '" .$_POST['ge']. "',"
    . " Tread = '" .$_POST['gt']. "',"
    . " WHERE FahrerID = '" .$_POST['oripn']. "'";
    mysql_query($sqlab);


    probier mal ob das geht!?#

    MfG

    EDIT: Achja, du kannst das auch alles in eine Datei packen setzt an Anfang des Scriptes ne Variable die bestimmt welches Script durchgeführt werden soll, Bsp:


    Dann musst du als action="" nur noch die eine Datei eintragen und nen hidden-Feld machen:

    HTML
    <input type='hidden' name='s_type' value='form_change ODER send_change' />


    und schon läuft der ganze Spaß in einer datei ab, sollte funktionieren!^^

  • Man sollte es so schreiben:

    PHP
    mysql_query(...)
       or die ("MySQL-Error: " . mysql_error());

    Außerdem sollte man alle von außen kommenden Daten durch mysql_real_escape_string schleusen. Wirklich vernünftig sieht das dann so aus:

  • Achso, der eigentliche Fehler dürfte das Komma am Ende von Tread = sein