Benötige Hilfe php Skript mit Datenbankanbindung

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

  • Benötige Hilfe php Skript mit Datenbankanbindung

    Hallo zusammen,
    kann mir jemand sagen woher die Daten der Variablen $first und $last ausgelesen werden.

    [COLOR=#000000][COLOR=#007700]function [/COLOR][COLOR=#0000BB]renderForm[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]$first [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#DD0000]''[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]$last [/COLOR][COLOR=#007700]=[/COLOR][COLOR=#DD0000]''[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]$error [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#DD0000]''[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]$id [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#DD0000]''[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]$last2 [/COLOR][COLOR=#007700]=[/COLOR][COLOR=#DD0000]''[/COLOR][COLOR=#007700]) {[/COLOR][/COLOR]​

    Ich möchte im Eingabeformular eine weiteres Feld einfügen komme aber nicht drauf woher die Daten aus den Variablen stammen.

    Vielen Dank für Eure Hilfe.




    PHP-Code:
    //

    <?php
    /* Datei: records.php
    Aufgabe: Neuen Datensatz erstellen bzw. vorhandenen Datensatz bearbeiten.
    */
    // Verbindung zur Datenbank herstellen.
    include("connect-db.php");
    // Funktion zur Bereinigung der Eingabedaten des Benutzers.
    function clean_data($data) {
    // Entfernt alle Leerzeichen am Anfang und Ende einer Zeichenfolge.
    $data trim($data);
    // Entfernt umgekehrte Schrägstriche aus einer Zeichenfolge.
    $data stripslashes($data);
    // Wandelt Sonderzeichen in HTML-Codes um.
    $data htmlspecialchars($data);
    // Entfernt Anweisungen in spitzen Klammern (sog. HTML-Tags) aus einer Zeichenfolge.
    $data strip_tags($data);
    return 
    $data;
    }
    // HTML-Formular zum Hinzufügen und Ändern von Datensätzen
    function renderForm($first ''$last =''$error ''$id ''$last2 ='') {
    ?>
    <!DOCTYPE html>
    <html lang = "de">
    <head>
    <meta charset="utf-8" />
    <title>
    <?php
    if ($id != '') {
    echo 
    "Datensatz &auml;ndern";
    } else {
    echo 
    "Datensatz hinzuf&uuml;gen";
    }
    ?>
    </title>
    <meta Name="viewport" content="width=device-width, initial-scale=1.0" />
    <link rel="stylesheet" type="text/css" href="styles.css" media="all" />
    </head>
    <body>
    <h1>
    <?php
    if ($id != '') {
    echo 
    "Datensatz &auml;ndern";
    } else {
    echo 
    "Datensatz hinzuf&uuml;gen";
    }
    ?>
    </h1>
    <?php
    if ($error != '') {
    echo 
    "<div style='padding:4px; border:1px solid red; color:red'>"
    $error "</div>";
    }
    ?>
    <form action="" method="post">
    <div>
    <?php if ($id != '') { ?>
    <input type="hidden" Name="id" value="<?php echo $id?>" />
    <p>ID: <?php echo $id?></p>
    <?php ?>
    </div>
    <div>
    <label for="Vorname"><strong>Vorname:</strong>
    <span style="color:red">* </span></label>
    <input type="text" id="Vorname" Name="Vorname" size="30"
    value="<?php echo $first?>" required="required" />
    </div>
    <br>
    <div>
    <label for="Name"><strong>Nachname:</strong>
    <span style="color:red">*</span></label>
    <input type="text" id="Name" Name="Name" size="30"
    value="<?php echo $last?>" required="required"/>
    </div>
    <br>
    <div>
    <label for="Strasse"><strong>Strasse:</strong>
    <span style="color:red">*</span></label>
    <input type="text" id="Strasse" Name="Strasse" size="30"
    value="<?php echo $last2?>" required="required"/>
    </div>
    <br>
    <div>
    <label for="PLZ"><strong>PLZ:</strong>
    <span style="color:red">*</span></label>
    <input type="text" id="PLZ" Name="PLZ" size="30"
    value="<?php echo $last?>" required="required"/>
    </div>
    <p><span style="color:red">*</span> erforderlich</p>
    <input type="submit" Name="submit" class="button" value="Abschicken" />
    </form>
    </body>
    </html>
    <?php }
    /* DATENSATZ ÄNDERN: */
    if (isset($_GET['id'])) {
    /* Wenn im Formular die Schaltfläche 'submit' gedrückt wird,
    werden die Felder des Formulars ausgewertet. */
    if (isset($_POST['submit'])) {
    // Gültigkeit der Variablen 'id' prüfen.
    if (is_numeric($_POST['id'])) {
    // Die Werte der Felder des Formulars auslesen.
    $id $_POST['id'];
    $Vorname htmlentities($_POST['Vorname'], ENT_QUOTES);
    $Name htmlentities($_POST['Name'], ENT_QUOTES);
    $Personalnummer htmlentities($_POST['Personalnummer'], ENT_QUOTES);
    $Strasse htmlentities($_POST['Strasse'], ENT_QUOTES);
    $PLZ htmlentities($_POST['PLZ'], ENT_QUOTES);
    $Ort htmlentities($_POST['Ort'], ENT_QUOTES);
    $Telefon htmlentities($_POST['Telefon'], ENT_QUOTES);
    $Mobil htmlentities($_POST['Mobil'], ENT_QUOTES);
    $Dienststelle htmlentities($_POST['Dienststelle'], ENT_QUOTES);
    $Fuehrerschein htmlentities($_POST['Fuehrerschein'], ENT_QUOTES);
    $Eintritt htmlentities($_POST['Eintritt'], ENT_QUOTES);
    $Austritt htmlentities($_POST['Austritt'], ENT_QUOTES);
    $Vertrag htmlentities($_POST['Vertrag'], ENT_QUOTES);
    $Qualifikation htmlentities($_POST['Qualifikation'], ENT_QUOTES);
    $Bemerkung htmlentities($_POST['Bemerkung'], ENT_QUOTES);
    $Status htmlentities($_POST['Status'], ENT_QUOTES);
    $Urlaubsanspruch htmlentities($_POST['Urlaubsanspruch'], ENT_QUOTES);

    // Prüfen, ob die Pflichtfelder für Vor- und Nachname gefüllt sind.
    if ($Vorname == '' || $Name == '') {
    // Wenn beide leer sind, eine Fehlermeldung ausgeben und das Formular anzeigen.
    $error 'FEHLER: Bitte Vor- und Nachnamen erfassen!';
    renderForm($Vorname$Name$error$id$Personalnummer,);
    } else {
    // Wenn die Daten im Formular OK sind, die Datenbanktabelle 'mitarbeiter' aktualisieren.
    $sql "UPDATE mitarbeiter SET Vorname = ?, Name = ?, Personalnummer = ?, Strasse = ?, PLZ = ?, Ort = ?, Telefon = ?, Mobil = ?, Dienststelle = ?, Fuehrerschein = ?, Eintritt = ?, Austritt = ?, Vertrag = ?, Qualifikation = ?, Bemerkung = ?, Status = ?, Urlaubsanspruch = ? WHERE id=?";
    if (
    $stmt $conn->prepare($sql)) {
    $stmt->bind_param("ssi"$Vorname$Name$id);
    $stmt->execute();
    $stmt->close();
    } else {
    echo 
    "FEHLER: Die UPDATE-Anweisung konnte nicht vorbereitet werden.";
    }
    }
    // Den Benutzer nach der Aktualisierung umleiten.
    header("Location: view.php");
    } else {
    // Wenn der Inhalt der Variable 'id' ungültig ist, eine Fehlermeldung ausgeben.
    echo "FEHLER: Die Variable 'id' ist nicht nummerisch!";
    }
    /* Wenn im Formular die Schaltfläche 'submit' noch nicht betätigt wurde,
    die Daten aus der Datenbanktabelle 'mitarbeiter' entnehmen und im Formular anzeigen: */
    } else {
    // Prüfen, ob der Wert der Variablen 'id' nummerisch und größer als null ist.
    if (is_numeric($_GET['id']) && $_GET['id'] > 0) {
    $id $_GET['id'];
    // Bestimmten Datensatz aus der Datenbanktabelle 'mitarbeiter' auswählen und anzeigen.
    $sql "SELECT id, vorname, name FROM mitarbeiter WHERE id=?";
    if(
    $stmt $conn->prepare($sql)) {
    $stmt->bind_param("i"$id);
    $stmt->execute();
    $stmt->bind_result($id$Vorname$Name);
    $stmt->fetch();
    // HTML-Formular anzeigen
    renderForm($Vorname$NameNULL$id);
    $stmt->close();
    } else {
    echo 
    "FEHLER: Die SELECT-Anweisung konnte nicht vorbereitet werden.";
    }
    } else {
    /* Wenn der Wert der Variablen 'id' ungültig ist,
    den Benutzer zur Seite view.php umleiten. */
    header("Location: view.php");
    }
    }
    } else {
        
    /* Die Variable 'id' ist nicht gesetzt, folglich:
    NEUER DATENSATZ: */
    if (isset($_POST['submit'])) {
    /* Wenn im Formular die Schaltfläche 'submit' gedrückt wird,
    muss das Formular ausgewertet werden. */
    // Die Eingabedaten mit der Funktion 'clean_data' bereinigen.
    $Vorname clean_data($Vorname);
    $Name clean_data($Name);
    // Eingabedaten aufbereiten.
    $Vorname htmlentities($_POST['Vorname'], ENT_QUOTES);
    $Name htmlentities($_POST['Name'], ENT_QUOTES);
    /* Prüfen, ob im Formular die Pflichtfelder für Vor- und Nachname
    gefüllt sind, sonst eine Fehlermeldung ausgeben
    und das HTML-Formular anzeigen. */
    if ($Vorname == '' || $Name == '') {
    $error 'FEHLER: Bitte alle Pflichtfelder ausf&uuml;llen!';
    renderForm($Vorname$Name$error);
    } else {
    /* Einen neuen Datensatz in die Datenbanktabelle 'mitarbeiter' einfügen,
    oder eine Fehlermeldung ausgeben.*/
    $sql "INSERT INTO mitarbeiter (Vorname, Name) VALUES (?, ?)";
    if (
    $stmt $conn->prepare($sql)) {
    $stmt->bind_param("ss"$Vorname$Name);
    $stmt->execute();
    $stmt->close();
    echo 
    "Einen neuen Datensatz erfolgreich erstellt.";
    } else {
    echo 
    "FEHLER: Die INSERT-Anweisung konnte nicht vorbereitet werden.";
    }
    // Den Benutzer umleiten.
    header("Location: view.php");
    }
    } else {
    // Wenn das HTML-Formular noch NICHT abgesandt wurde, dieses anzeigen.
    renderForm();
    }
    }
    // Die Verbindung zur Datenbank beenden.
    mysqli_close($conn);
    ?>
    Zuletzt geändert von jochen1404; 01.02.2023, 11:34.

  • #2
    Danke, ich habe das Problem nun doch selbst gefunden.

    Kommentar


    • #3
      Auch wenn ich das Problem selbst erkennen konnte, bin ich für Ihre Hilfe dankbar.
      Zuletzt geändert von wilkinsonwilfrid; 30.05.2024, 04:32.

      Kommentar


      • #4
        Die Variablen $first und $last in der renderForm-Funktion werden aus den Parametern der Funktion übergeben. Diese Variablen werden verwendet, um die Eingabefelder im HTML-Formular vorzubefüllen, wenn das Formular angezeigt wird. Die Daten für diese Variablen stammen aus verschiedenen Quellen, abhängig davon, ob ein neuer Datensatz erstellt wird oder ein vorhandener Datensatz bearbeitet wird.

        Kommentar

        Lädt...
        X