Ergebnis 1 bis 6 von 6

Thema: MySQL Datensatz updaten

  1. #1
    Teeny
    Registriert seit
    03.01.2011
    Beiträge
    29
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard 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
    PHP-Code:
    <html>
    <body>
    <p>Wählen Sie aus, welcher Datensatz geändert werden soll:</p>
    <form action = "p416b.php" method = "post">
    <?php
       mysql_connect
    ("*");
       
    mysql_select_db("*");

       
    $res mysql_query("select FahrerID, Vorname, Nachname, neuesTeam, Tread from Transfers");
       
    $num mysql_num_rows($res);

       
    // Tabellenbeginn
       
    echo "<table border='1'>";

       
    // Überschrift
       
    echo "<tr> <td>Auswahl</td> <td>Vorname</td>";
       echo 
    "<td>Nachname</td> <td>Fahrer ID</td>";
       echo 
    "<td>neues Team</td> <td>Tread</td> </tr>";

       while (
    $dsatz mysql_fetch_assoc($res))
       {
          
                echo 
    "<tr>";
          echo 
    "<td><input type='radio' name='auswahl'";
          echo 
    " value='" $dsatz["FahrerID"] . "' /></td>";
          echo 
    "<td>" $dsatz["Vorname"] . "</td>";
          echo 
    "<td>" $dsatz["Nachname"] . "</td>";
          echo 
    "<td>" $dsatz["FahrerID"] . "</td>";
          echo 
    "<td>" $dsatz["neuesTeam"] . "</td>";
          echo 
    "<td>" $dsatz["Tread"] . "</td>";
          echo 
    "</tr>";
       }

       
    // Tabellenende
       
    echo "</table>";
    ?>
    <p><input type="submit" value="Datensatz anzeigen" /></p>
    </form>
    </body>
    </html>
    Datei 2
    PHP-Code:
    <html>
    <body>
    <?php
    if (isset($_POST["auswahl"]))
    {
       
    mysql_connect("*");
       
    mysql_select_db("*");

       
    $sqlab "select FahrerID, Vorname, Nachname, neuesTeam, Tread from Transfers where 
          FahrerID = " 
    $_POST["auswahl"];
       
    $res mysql_query($sqlab);
       
    $dsatz mysql_fetch_assoc($res);

       echo 
    "<p>Führen Sie die Änderungen durch,<br />";
       echo 
    "betätigen Sie anschließend den Button</p>";
       echo 
    "<form action = 'p416c.php' method = 'post'>";

       echo 
    "<p><input name='nn' value='" $dsatz["Vorname"] . "' /> Vorname</p>";
       echo 
    "<p><input name='vn' value='" $dsatz["Nachname"] . "' /> Nachname</p>";
       echo 
    "<p><input name='pn' value='" $_POST["auswahl"] . "' /> Fahrer ID</p>";
       echo 
    "<p><input name='ge' value='" $dsatz["neuesTeam"] . "' /> neuesTeam</p>";
       echo 
    "<p><input name='gt' value='" $dsatz["Tread"] . "' /> Tread</p>";
       echo 
    "<input type='hidden' name='oripn' value='" $_POST["auswahl"] . "' />";
       echo 
    "<p><input type='submit' value='Änderungen in Datenbank speichern' />";
       echo 
    " <input type='reset' /></p>";
       echo 
    "</form>";
    }
    else
       echo 
    "<p>Es wurde kein Datensatz ausgewählt</p>";
    ?>
    </body>
    </html>

    Datei 3
    PHP-Code:
    <html>
    <body>
    <?php
       mysql_connect
    ("*");
       
    mysql_select_db("*");


       
    $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);

       
    $num mysql_affected_rows();
       if (
    $num>0)
          echo 
    "<p>Der Datensatz wurde geändert</p>";
       else
          echo 
    "<p>Der Datensatz wurde nicht geändert</p>";
    ?>
    <p>Zurück zur <a href="Teams2011a.php">Auswahl</a></p>
    </body>
    </html>
    Hier mal ein Link zur Seite

    http://rsm-liga.de/SW/GermanEliteWeb/Teams2011a.php
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!

  2. #2
    Meister(in) Avatar von DarkEmperor
    Registriert seit
    23.04.2010
    Ort
    Freital
    Alter
    24
    Beiträge
    356
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings
    Blog-Einträge
    5

    Standard AW: MySQL Datensatz updaten

    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-Code:
    $con mysql_connect("localhost","peter","abc123");
    if (!
    $con)
    {
    die(
    'Could not connect: ' mysql_error());

    Bsp. Error-Report (als erste Codezeile nach <?php
    PHP-Code:
    error_reporting(E_ALL); 
    3.) zu deinem Fehler, glaube ich zumindest das es der ist:
    falsch
    PHP-Code:
    $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-Code:
    $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:
    PHP-Code:
    <?php
    error_reporting
    (E_ALL);

    $script_type "form_search";
    if(isset(
    $POST["s_type"])) {
    $script_type $POST["s_type"]; }

    if(
    $script_type == "form_search") {
    // deine Datei1.php ; }

    elseif($script_type == "form_change") {
    // deine Datei2.php ; }

    elseif($script_type == "send_change") {
    // deine Datei3.php ; }

    else {
    echo 
    "Script-Type wurde nicht erkannt.";
    Dann musst du als action="" nur noch die eine Datei eintragen und nen hidden-Feld machen:
    HTML-Code:
    <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!^^
    Geändert von DarkEmperor (20.07.2011 um 08:57 Uhr)

  3. #3
    Unregistriert
    Gast

    Standard AW: MySQL Datensatz updaten

    Man sollte es so schreiben:
    PHP-Code:
    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:
    PHP-Code:
    $sqlab "UPDATE 
                 `Transfers`
               SET
                 `Vorname`   = '" 
    mysql_real_escape_string($_POST["nn"]) . "',
                 `Nachname`  = '" 
    mysql_real_escape_string($_POST["vn"]) . "',
                 `FahrerID`  = '" 
    mysql_real_escape_string($_POST["pn"]) . "',
                 `neuesTeam` = '" 
    mysql_real_escape_string($_POST["ge"]) . "',
                 `Tread`     = '" 
    mysql_real_escape_string($_POST["gt"]) . "'
               WHERE 
                 `FahrerID` = '" 
    mysql_real_escape_string($_POST["oripn"]) . "'";
                 
    mysql_query($sqlab)
      or die (
    "MySQL-Error: " mysql_error()); 

  4. #4
    Unregistriert
    Gast

    Standard AW: MySQL Datensatz updaten

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

  5. #5
    Teeny
    Themenstarter

    Registriert seit
    03.01.2011
    Beiträge
    29
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: MySQL Datensatz updaten

    Vielen vielen Dank an euch nun geht es. werd mir eure Tipps merken

  6. #6
    Meister(in) Avatar von DarkEmperor
    Registriert seit
    23.04.2010
    Ort
    Freital
    Alter
    24
    Beiträge
    356
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings
    Blog-Einträge
    5

    Standard AW: MySQL Datensatz updaten

    Zitat Zitat von Unregistriert Beitrag anzeigen
    Achso, der eigentliche Fehler dürfte das Komma am Ende von Tread = sein
    Joa, aber nicht nur das war es, der UPDATE Query war mehr als mit Fehlern überlastet, und sry das ich früh 3/4 8 nicht alles sehe!^^ Also danke für die Erweiterung.

    Und natürlich gern geschehen!^^

    MfG

Ähnliche Themen

  1. Einträge updaten ...
    Von SimplyFred im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 5
    Letzter Beitrag: 25.04.2007, 15:41
  2. PHP Daten updaten
    Von man_mar im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 0
    Letzter Beitrag: 12.03.2007, 01:06
  3. [MySql] Eingabe mit ausgelesenem Datensatz vergleichen
    Von ::RMB:: im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 19
    Letzter Beitrag: 10.03.2006, 21:44
  4. tunderbird updaten
    Von Rocco im Forum Computer - Internet Forum
    Antworten: 2
    Letzter Beitrag: 20.05.2005, 19:32
  5. mysql datenbank updaten
    Von bo0ntown.net im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 2
    Letzter Beitrag: 06.10.2004, 19:02

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •