Hallo, Zusammen.
ich bin gerade beim aufbau einer Seite in PHP und inn Verbindung mit SQL.
Dabei schau auch scripte auf Lernplattformen an und erlerne sie.
nun habe ich Zwei Versionen. eine geht die andere nicht.
Die URL zu den seiten und Quelle füge ich mit ein. Habe nur Anpassungen an die Verbindung zur DB gemacht. Beide Scripte LESEN die DB aus und geben Sie mir aus. Nur das einfügen in die DB geht nicht. Warum??
Der geht, ist aber sehr viel script
::
und der NICHT......
ich bin gerade beim aufbau einer Seite in PHP und inn Verbindung mit SQL.
Dabei schau auch scripte auf Lernplattformen an und erlerne sie.
nun habe ich Zwei Versionen. eine geht die andere nicht.
Die URL zu den seiten und Quelle füge ich mit ein. Habe nur Anpassungen an die Verbindung zur DB gemacht. Beide Scripte LESEN die DB aus und geben Sie mir aus. Nur das einfügen in die DB geht nicht. Warum??
Der geht, ist aber sehr viel script
HTML-Code:
https://www.php-kurs.com/db-neuen-datensatz-speichern.htm
PHP-Code:
<?php require 'inc/db.php';
if (isset($_POST['aktion']) and $_POST['aktion']=='speichern')
{ $vorname = ""; if (isset($_POST['vorname'])) { $vorname = trim($_POST['vorname']); } $nachname = ""; if (isset($_POST['nachname'])) { $nachname = trim($_POST['nachname']); } $anmerkung = ""; if (isset($_POST['anmerkung'])) { $anmerkung = trim($_POST['anmerkung']); } $erstellt = date("Y-m-d H:i:s"); if ( $vorname != '' or $nachname != '' or $anmerkung != '' ) { // speichern $einfuegen = $db->prepare(" INSERT INTO kontakte (vorname, nachname, anmerkung, erstellt) VALUES (?, ?, ?, NOW()) "); $einfuegen->bind_param('sss', $vorname, $nachname, $anmerkung); if ($einfuegen->execute()) { header('Location: index.php?aktion=feedbackgespeichert'); die(); echo "<h1>gespeichert</h1>"; } } } if (isset($_GET['aktion']) and $_GET['aktion']=='feedbackgespeichert') { echo '<p class="feedbackerfolg">Datensatz wurde gespeichert</p>'; } $daten = array(); if ($erg = $db->query("SELECT * FROM kontakte")) { if ($erg->num_rows) { while($datensatz = $erg->fetch_object()) { $daten[] = $datensatz; } $erg->free(); } } if (!count($daten)) { echo "<p>Es liegen keine Daten vor :(</p>"; } else { ?> <table> <thead> <tr> <th>ID</th> <th>Vorname</th> <th>Nachname</th> <th>Anmerkung</th> <th>erstellt</th> </tr> </thead> <tbody> <?php foreach ($daten as $inhalt) { ?> <tr> <td><?php echo $inhalt->id; ?></td> <td><?php echo bereinigen($inhalt->vorname); ?></td> <td><?php echo bereinigen($inhalt->nachname); ?></td> <td><?php echo bereinigen($inhalt->anmerkung); ?></td> <td><?php echo $inhalt->erstellt; ?></td> </tr> <?php } ?> </tbody> </table> <?php } function bereinigen($inhalt='') { $inhalt = trim($inhalt); $inhalt = htmlentities($inhalt, ENT_QUOTES, "UTF-8"); return($inhalt); } ?> <form action="" method="post"> <label>Vorname: <input type="text" name="vorname" id="vorname"> </label> <label>Nachname: <input type="text" name="nachname" id="nachname"> </label> <label>Anmerkung: <textarea name="anmerkung" id="anmerkung"></textarea> </label> <input type="hidden" name="aktion" value="speichern"> <input type="submit" value="speichern"> </form>
HTML-Code:
https://wiki.selfhtml.org/wiki/PHP/Tutorials/Datenbanken_mit_PHP
PHP-Code:
<?php
require 'inc/db.php';
$spalten = [
'vorname' => 'Vorname',
'nachname' => 'Nachname',
'anmerkung' => 'anmerkung',
];
?>
<!doctype html>
<html lang="de">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Titel</title>
</head>
<body>
<table>
<thead>
<tr>
<?php
foreach ($spalten as $name) {
echo '<th>', htmlspecialchars($name), '</th>';
}
?>
</tr>
</thead>
<tbody>
<?php
$results = $dbh->query('SELECT * FROM `adressen`');
foreach($results as $result) {
echo '<tr>';
foreach ($spalten as $schluessel => $name) {
echo '<td>', htmlspecialchars($result[$schluessel]), '</td>';
}
echo '</tr>';
}
?>
<tbody>
<table>
</body>
</htm
<?php
if(isset($_POST['neu'])) {
$schluessel = [];
$werte = [];
$platzhalter = [];
foreach ($spalten as $spalte => $name) {
$schluessel[] = '`'.$spalte.'`';
// Zu lange Eingaben kürzen
if(mb_strlen($_POST[$spalte]) > 256) {
$_POST[$spalte] = mb_substr($_POST[$spalte], 0, 256);
}
$werte[] = $_POST[$spalte]??'';
$platzhalter[] = '?';
}
$werte[] = time();
$query = 'INSERT INTO `adressen` ('.implode(', ', $schluessel).', `zuletzt_geaendert`)
VALUES ('.implode(', ', $platzhalter).')';
$stmt = $dbh->prepare($query);
$stmt->execute($werte);
header('Location: .');
die();
}
?>
<form method="post">
<fieldset>
<legend>Neuer Eintrag</legend>
<?php
foreach($spalten as $schluessel => $name) {
echo '<label><input type="text" name="',
htmlspecialchars($schluessel, ENT_QUOTES | ENT_HTML5), '" maxlength="256"> ',
htmlspecialchars($name),
'</label><br>';
}
?>
<button name="neu" value="1">Eintragen</button>
</fieldset>
</form>
Kommentar