Ergebnis 1 bis 4 von 4

Thema: [SQL] Edit- Button

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1

    [SQL] Edit- Button

    Ich hab ein Formular, in dem werden Personalien eingetragen und in einer SQL- Datenbank abgelegt. Einen Edit- Button will ich aber auch, nur weiß ich nicht wie.
    Der soll den zu bearbeitenden Datensatz in das/ein Formular schreiben (meinetwegen kann auch eine neue HTML Seite dafür genutzt werden), frei zur Bearbeitung geben und nach Abschluss abspeichern (was wohl einfach nur heißt, dass die alte ID überschrieben wird).

    Ich habe zuvor weder mit PHP, noch mit SQL gearbeitet und hab auch vorerst keine Zeit Versäumnisse aufzuholen, muss diese Aufgabe also erstmal so lösen. Ich hoffe man kann mich da ein bisschen an die Hand nehmen.

  2. #2
    Der Edit-Button muss (wenn du's nicht mit AJAX o.ä. auf der gleichen Seite in ein Formular einfügst, was aber eindeutig aufwendiger ist) auf eine Seite in der Art "edit.php?id=1" (für das Item mit der ID 1) verweisen.
    In die "edit.php" kommt dann etwas ähnlich dem Folgenden:
    PHP-Code:
    <?php
    $id 
    intval($_GET['id']);
    if (
    id == 0) {
        echo 
    "Ungültiger ID-Parameter!";
    }

    $db mysql_connect("localhost""benutzername""passwort") or die("MySQL-Fehler!");
    mysql_selectdb("verwendete_tabelle"$db);

    $sql "SELECT `spalte1`, `spalte2`, `spalte3` FROM `tabelle` WHERE `id` = $id LIMIT 1";
    $result mysql_query($sql$db) or die("MySQL-Fehler!");

    $data mysql_fetch_array($result);
    mysql_free_result($result);
    mysql_close($db);
    ?>
    <!-- Normale HTML-Datei bis zum Formular-Teil -->

    <form method = "post" action = "update.php">
        <input type = "hidden" name = "id" value = "<?php echo $id?>" />
        <label for = "input1">Spalte1:</label>
        <input type = "text" id = "input1" name = "input1" value =
            "<?php echo html_specialchars($data['spalte1']); ?>" />
        <label for = "input2">Spalte2:</label>
        <input type = "text" id = "input2" name = "input2" value =
            "<?php echo html_specialchars($data['spalte2']); ?>" />
        <label for = "input3">Spalte3:</label>
        <input type = "text" id = "input3" name = "input3" value =
            "<?php echo html_specialchars($data['spalte3']); ?>" />
        <input type = "submit" value = "Änderungen übernehmen" />
    </form>

    <!-- Rest der HTML-Datei -->
    In "update.php" erhältst du dann die neuen Werte in den POST-Daten, und kannst sie in etwa so in der Datenbank ändern:
    PHP-Code:
    mysql_query("UPDATE `tabelle` SET `spalte1` = '" mysql_real_escape_string($_POST['spalte1']) . "', `spalte2` = '" mysql_real_escape_string($_POST['spalte2']) . "', `spalte3` = '" mysql_real_escape_string($_POST['spalte3']) . "' WHERE `id` = " intval($_POST['id']) . " LIMIT 1"$db); 
    Zu ergänzen wäre natürlich noch ein Authentifizierungsmechanismus, damit nicht jeder das Ganze editieren kann wie er will.
    Ahja, und Fehler sind auch sicher noch drin, nicht getestet. <__<'

  3. #3
    Zitat Zitat
    Ahja, und Fehler sind auch sicher noch drin, nicht getestet. <__<'
    Genau, [FONT="Courier New"]htmlspecialchars[/FONT] schreibt man ohne [FONT="Courier New"]_[/FONT].

    Zudem würde ich empfehlen, dass:
    Code:
    or die("MySQL-Fehler!");
    durch:
    Code:
    or die(mysql_error());
    zu ersetzen.

  4. #4
    Ich hab mir mit eurem Zutun und dem Atelier eine Lösung zusammengefrömmeln können.
    Danke vielmals .

Berechtigungen

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