Benötige Hilfe php Skript mit Datenbankanbindung
Einklappen
X
-
Benötige Hilfe php Skript mit Datenbankanbindung
Hallo zusammen,
kann mir jemand sagen woher die Daten der Variablen $first und $last ausgelesen werden.
function renderForm($first = '', $last ='', $error = '', $id = '', $last2 ='') {
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 ändern";
} else {
echo "Datensatz hinzufü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 ändern";
} else {
echo "Datensatz hinzufü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, $Name, NULL, $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ü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, 10:34.Stichworte: -
Einen Kommentar schreiben: