Hallo,
da ich gerne das Board als das verwenden möchte, als das es ursprünglich gedacht war, und zwar als Plattform um Wissen auszutauschen, antworte ich gerne auf dein Problem:
Leider ist das Problem nicht in zwei Sätzen zu erklären, also fangen wir mal vorne an:
Nehmen wir an, dass du folgende Elemente hast:
eine (wenn du nicht wissen solltest, wie man diese verwendet, einfach nochmal nachfragen) sowie einen entsprechenden sog. submit-Button:
Nachdem du alle diese Elemente in eine HTML-Datei gespeichert hast und die oben erwähnte form z.B. die Daten an eine Datei namens merkzettel_speichern.php schickt.
Diese Datei hat den Zweck die Daten zu überprüfen (z.B. Eintrag darf nicht leer sein) und diese Daten dann anschließend in eine MySQL Datenbank zu schreiben. Ein entsprechender Code könnte so aussehen (ich hoffe, dass ich keine Fehler drin habe
):
<?php //Hier kannst du deine entsprechenden Werte reinschreiben<br />$servername = "localhost"; //Servername des MySQL Servers
$username = "user"; //Benutzername zum Login am MySQL Server
$password = "password"; //Passwort zum Login am MySQL Server
$databasename = "merkzettel"; //Name der Datenbank
$databaseTblName = "merkzettel"; //Name der Tabelle in der MySQL Datenbank
//Siehe wer-weiss-was Post
$textfeldName = "notiz";
$submitName = "reinschreiben";
//Diese Seite wird aufgerufen wenn erfolgreich gespeichert wurde
$linkErfolg = "erfolgreich\_gespeichert.html";
//Diese Seite wird aufgerufen wenn ein Fehler auftritt
$linkFehler = "fehler\_aufgetreten.html";
// ### CODE ###
$errorOccured = true;
$connection = mysql\_connect($servername, $username, $password);
if(is\_resource($connection)){
//Verbindung zum Datenbankserver hergestellt.
if(mysql\_select\_db($databasename)){
//Verbindung zur Datenbank hergestellt
if($\_POST[$submitName]!="" && $\_POST[$textfeldName]!=""){
if($\_COOKIE["user\_id"]==""){
//Hole die höchste ID aus der Datenbank und setze den entsprechenden Cookie
$sql = "SELECT COUNT(\*) AS 'count' FROM {$databaseTblName}";
$result = mysql\_query($sql);
$row = mysql\_fetch\_assoc($result);
$userId = $row["count"] + 1;
setcookie("user\_id", $userId, time()+(365\*3600));
mysql\_free\_result($result);
$sql = "INSERT INTO {$databaseTblName} (user\_id, notiz)
VALUES
({$userId}, '" . mysql\_real\_escape\_string($\_POST[$textfeldName]) . "')";
}else{
//Der Benutzer hat bereits eine ID und die Notiz wird nur noch aktualisiert
$sql = "UPDATE {$databaseTblName} SET notiz = '" . mysql\_real\_escape\_string($\_POST[$textfeldName]) . "'
WHERE user\_id = '" . $\_COOKIE["user\_id"] . "'";
}
mysql\_query($sql);
$errorOccured = false;
}else{
//Es wurden nicht alle Daten eingegeben!
echo "Daten fehlen!"
}
}else{
echo "Konnte keine Verbindung zur Datenbank herstellen.";
}
}else{
echo "Konnte keine Verbindung zum Datenbankserver herstellen.";
}
//Ggf. Fehlerbehandlung
if($errorOccured){
header("Location: " . $linkFehler);
}else{
header("Location: " . $linkErfolg);
}
?\>
Zusätzlich benötigst du (natürlich) noch eine MySQL Datenbank mit einer Tabelle, die folgende Spalten hat:
user_id (als INTEGER)
notiz (als TEXT)
Das System hat sicherlich seine Macken und ist auch nicht fehlerfrei, aber wenn du noch weitere Hilfe brauchst, einfach auf den Beitrag hier antworten, bzw. mir eine e-Mail zukommen lassen.
Liebe Grüße aus Augsburg,
Stephan Schulze
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]