Mahlzeit,
muss mich erstmal für die Verzögerung entschuldigen - ich musste noch was für die Uni machen
.
Aber jetzt hab ich mal den Code mitgebracht:
Als erstes das Formular, welches du unangetastet lassen kannst (Design ist natürlich nicht das gelbe vom Ei - das kannst du gerne noch ändern
). Den Formularcode einfach an der gewünschten Stelle im Code einpflegen:
Code:
<form method='POST' action='<?php $_SERVER['PHP_SELF']?>'>
<table border='0' cellspacing='0' cellpadding='0' align='' width='300'>
<tr>
<td>
<font>Name:</font><input type='text' name='Name' size='40'>
</td>
</tr>
<tr>
<td>
<font>Cocktail-Name:</font><input type='text' name='Cocktailname' size='40'><br><br>
</td>
</tr>
</table><br>
<table border='0' cellspacing='0' cellpadding='0' align='' width='300'>
<tr>
<td>
<font>Zusammensetzung:</font>
</td>
</tr>
<tr>
<td>
<textarea name='Zusammensetzung' value='' cols='40' rows='20'></textarea>
</td>
</tr>
</table><br>
<input type='submit' name='Bestätigen' value='Bestätigen'>
</form>
Als nächstes kommt der Code, der die Formulareingaben verarbeitet und Sie in die Datenbank einträgt (am besten gleich nach dem Formularcode einfügen, damit die Ausgaben auch in diesem Bereich erscheinen):
PHP:
<?php
if(isset($_POST['Bestätigen'])) {
function StrSafe ($inhalt) {
if (!empty($inhalt)) {
//Umlaute und Sonderzeichen in HTML-Schreibweise umwandeln
$inhalt = htmlentities($inhalt);
//Entfernt Überflüssige Zeichen am Anfang und Ende der Zeichenkette
$inhalt = trim($inhalt);
//Backslashes entfernen
$inhalt = stripslashes($inhalt);
}
return $inhalt;
}
foreach ($_POST as $key=>$element) {
//Dynamische Variablen erzeugen und Eingaben filtern
${"g_".$key} = StrSafe($element);
}
//Auf Eingabe prüfen
if(!strlen($g_Name)) {
$error_msg.= "Sie müssen einen Namen angeben!";
}
if(!strlen($g_Cocktailname)) {
$error_msg.= "Sie müssen einen Cocktail-Namen angeben!";
}
if(!strlen($g_Zusammensetzung)) {
$error_msg.= "Sie müssen die Zusammensetzung angeben!";
}
//Ausgabe der Fehlermeldung, falls vorhanden
if($error_msg) {
echo"$error_msg<br>";
} else {
//Datum der Einschreibung
$Datum = date("d-m-Y");
//Uhrzeit der Einschreibung
$Zeit = date("H:i");
$Hostname = "";
$Benutzername = "";
$Passwort = "";
$Datenbank = "db729687-cocktails";
$Datenbanktabelle = "";
$db = new mysqli($Hostname, $Benutzername, $Passwort, $Datenbank);
if(mysqli_connect_errno()) {
printf("Verbindung fehlgeschlagen: %s\n", mysqli_connect_error());
exit();
}
$Einschreiben = mysqli_query($db, "INSERT INTO $Datenbanktabelle
(id, Name, Cocktailname, Datum, Zeit, Zusammensetzung)
VALUES
('', '$g_Name', '$g_Cocktailname', '$Datum', '$Zeit', '$g_Zusammensetzung')");
if($Einschreiben) {
echo"Daten erfolgreich in die Datenbank eingetragen.";
mysqli_close($db);
} else {
echo"Daten konnten nicht in die Datenbank geschrieben werden.";
}
}
}
?>
Als letzter Codeabschnitt - der Code, der in die Seite eingefügt werden soll, die die Ausgabe der Daten vornimmt und dem Benutzer präsentiert:
PHP:
<?php
$Hostname = "";
$Benutzername = "";
$Passwort = "";
$Datenbank = "db729687-cocktails";
$Datenbanktabelle = "";
$Einträge_anzeigen = "10";
$db = new mysqli($Hostname, $Benutzername, $Passwort, $Datenbank);
if(mysqli_connect_errno()) {
printf("Verbindung fehlgeschlagen: %s\n", mysqli_connect_error());
exit();
}
$Abfrage = mysqli_query($db, "SELECT * FROM $Datenbanktabelle ORDER BY id DESC LIMIT $Einträge_anzeigen");
$Anzahl = mysqli_num_rows($Abfrage);
//Einträge vorhanden?
//wenn nein, dann...
if($Anzahl == "0") {
echo"
<table border='0' cellspacing='0' cellpadding='0' align='center' width='500'>
<tr>
<td>
<font><center>Keine Einträge vorhanden!</center></font>
</td>
</tr>
</table>
";
//ansonsten...
} else {
while($datensatz = mysqli_fetch_array($Abfrage)) {
extract($datensatz);
$Zusammensetzung = nl2br($Zusammensetzung);
echo"
<table Cellspacing='0' cellpadding='0' align='center' width='500' style='border:1px dotted #a0a0a0;'>
<tr>
<td width='350' style='padding-right:5px; padding-left:5px;'>
<font>$Cocktailname</font><br>
<font style='font-size:12px;'>by $Name</font>
</td>
<td width='150' valign='bottom' align='right' style='padding-right:5px; padding-left:5px;'>
<font style='font-size:12px;'>$Datum, $Zeit</font>
</td>
</tr>
<tr>
<td colspan='2'>
<hr width='98%' size='1'>
</td>
</tr>
<tr>
<td colspan='2' style='padding-right:5px; padding-left:5px;'>
<font>$Zusammensetzung</font>
</td>
</tr>
</table><br>
";
}
}
mysqli_close($db);
?>
natürlich ist auch hier das Design veränderbar. Dabei ist zu beachten, dass der Code, der innerhalb des ersten echo"";-Befehls steht, dann angezeigt wird, wenn keine Einträge vorhanden sind. (Ist im Prinzip nichts anderes als HTML-Code kann also auch so geschrieben werden mit dem Unterschied das man " durch ' ersetzen sollte -> wenn nicht dann ein \ zuvor schreiben, damit die " escaped werden)
Innerhalb des zweiten echo"";-Befehls steht ebenfalls wieder prinzipieller HTML-Code der so behandelt werden sollte wie oben gerade beschrieben. Dieser wird gezeigt wenn Einträge vorhanden sind (natürlich auch anpassbar).
So abschließend noch ein paar worte zu meiner Tabellenstruktur:
Meine Tabelle heißt übrigens Cocktail (Tabelle nicht mit Datenbank verwechseln!!).
id INT(11) NOT NULL AUTO_INCREMENT,
Name VARCHAR(60) NOT NULL,
Cocktailname VARCHAR(60) NOT NULL,
Datum VARCHAR(10),
Zeit VARCHAR(5),
Zusammensetzung LONGBLOB,
PRIMARY KEY(id)
...fasst vergessen:
du findest im 2. und 3. Codeausschnitt ein paar Zeilen wie $Hostname und $Passwort -> trage dort bitte die entsprechenden Daten für die Datenbank ein (müsstest du vom Provider bekommen haben).
So, lange Rede kurzer Sinn:
Code könnte man auch noch zusammenkürzen - leider keine Zeit ;-).
Viel Spaß damit und falls es Probleme mit dem Code gibt, einfach nochmal melden.