- Registriert
- 02.02.16
- Beiträge
- 85
Hallo Community,
erstmal mein Script
Und nun zu meinem Problem. Wie ihr seht habe ich ein Script geschrieben mit dem ich meine Datenbank um zwei Werte updaten kann. Nämlich "Wohnort und Job". Das ganze funktioniert soweit auch. Was jedoch nicht funktioniert ist die Sache das wenn ich nur einen von beiden Werten updaten möchte, der andere bereits vorhandene Wert dann mit einem leerem Wert geupdatet wird so das dann in der Datenbank nichts mehr steht.
Versteht ihr ? Ich will also bewerkstelligen das es möglich ist auch nur einen von zwei Werten zu updaten.
Ich weiß das gerade noch eine Meldung aufkommt, wenn einer der beiden Wert nicht gesetzt ist durch die Variable $fehlerfelder. Durch diese Variable kommt es dazu das eine Zeile nicht leer sein kann so das der User etwas dafür eingeben muss. Mir ist klar das dass ganze dahingehend abgeändert werden muss.
Nehme ich bspw. folgende Zeilen aus dem Code:
if (!isset($_POST["Wohnort"]) ||
!is_string($_POST["Wohnort"]) ||
trim($_POST["Wohnort"]) == "" ){
$ok = false;
$fehlerfelder[] = "Wohnort";
}
Dann passiert das was ich oben bereits geschrieben habe, nämlich das dann der Wert"Null" übermittelt wird obwohl bereits ein Eintrag zu Wohnort vorhanden war.
Also ich hoffe ihr versteht was ich meine und könnt mir weiterhelfen
erstmal mein Script

Code:
<?php
session_start();
if(!isset($_SESSION['userid'])) {
die('Bitte zuerst <a href="Mac_Version1.php">einloggen</a>');
}
$userid = $_SESSION['userid'];
$pdo = new PDO('mysql:host=localhost;dbname=Datenbank_NEU', 'root', 'drago10');
?>
<!DOCTYPE html>
<html>
<head>
<title>Profil</title>
<link rel="stylesheet" href="Formdesign.css" type="text/css" />
<link href='https://fonts.googleapis.com/css?family=Raleway' rel='stylesheet' type='text/css'>
</head>
<body>
<?php
$Wohnort = (isset($_POST["Wohnort"]) && is_string($_POST["Wohnort"])) ?
$_POST["Wohnort"] : "";
$Job = (isset($_POST["Job"]) && is_string($_POST["Job"])) ?
$_POST["Job"] : "";
$ok = false;
$fehlerfelder = array();
if (isset($_POST["Submit"])) {
$ok = true;
if (!isset($_POST["Job"]) ||
!is_string($_POST["Job"]) ||
trim($_POST["Job"]) == "" ){
$ok = false;
$fehlerfelder[] = "Job";
}
if (!isset($_POST["Wohnort"]) ||
!is_string($_POST["Wohnort"]) ||
trim($_POST["Wohnort"]) == "" ){
$ok = false;
$fehlerfelder[] = "Wohnort";
}
if ($ok) {
?>
<h1>Formulardaten</h1>
<?php
$pdo = new PDO('mysql:host=localhost;dbname=Datenbank_NEU', 'root', 'drago10');
$statement = $pdo->prepare("UPDATE adressen SET wohnort = '$Wohnort', job = '$Job' WHERE id = '$userid'");
$statement->execute();
$Wohnort = htmlspecialchars($Wohnort);
$Job = htmlspecialchars($Job);
echo "<b> Wohnort:</b> $Wohnort<br />";
echo "<b> Job:</b> $Job<br />";
echo "<br/>";
echo "Super! Alle Daten wurden erfolgreich übermittelt. <a href =Menu_Link_1log.php>Hier geht es weiter.</a>";
?>
<?php
} else {
echo "<p><b>Formular unvolständig</b></p>";
echo "<ul><li>";
echo implode("</li><li>", $fehlerfelder);
echo "</li></ul>";
}
}
if (!$ok) {
?>
<fieldset>
<legend>Profil</legend>
<form method="post">
<label for="whort"> Wohnort:</label> <input type="text" name="Wohnort" value="<?php
echo htmlspecialchars($Wohnort);
?>" /><br />
<label for="job"> Job:</label> <input type="text" name="Job" value="<?php
echo htmlspecialchars($Job);
?>" /><br />
<input class="button" type="submit" name="Submit" value="Senden"/>
</form>
</fieldset>
<?php
}
?>
</body>
</html>
Und nun zu meinem Problem. Wie ihr seht habe ich ein Script geschrieben mit dem ich meine Datenbank um zwei Werte updaten kann. Nämlich "Wohnort und Job". Das ganze funktioniert soweit auch. Was jedoch nicht funktioniert ist die Sache das wenn ich nur einen von beiden Werten updaten möchte, der andere bereits vorhandene Wert dann mit einem leerem Wert geupdatet wird so das dann in der Datenbank nichts mehr steht.
Versteht ihr ? Ich will also bewerkstelligen das es möglich ist auch nur einen von zwei Werten zu updaten.
Ich weiß das gerade noch eine Meldung aufkommt, wenn einer der beiden Wert nicht gesetzt ist durch die Variable $fehlerfelder. Durch diese Variable kommt es dazu das eine Zeile nicht leer sein kann so das der User etwas dafür eingeben muss. Mir ist klar das dass ganze dahingehend abgeändert werden muss.
Nehme ich bspw. folgende Zeilen aus dem Code:
if (!isset($_POST["Wohnort"]) ||
!is_string($_POST["Wohnort"]) ||
trim($_POST["Wohnort"]) == "" ){
$ok = false;
$fehlerfelder[] = "Wohnort";
}
Dann passiert das was ich oben bereits geschrieben habe, nämlich das dann der Wert"Null" übermittelt wird obwohl bereits ein Eintrag zu Wohnort vorhanden war.
Also ich hoffe ihr versteht was ich meine und könnt mir weiterhelfen
