MySQL Daten über PHP-Formular bearbeiten

Jacy

Mitglied
Hallo zusammen,
ich hätte da mal eine Frage zu PHP, bzw MySQL.

Wir haben für die Uni die Aufgabe, eine Website zu erstellen, die an eine CD Datenbank angebunden ist. Es soll zwei Kategorien geben, einmal den lesenden Zugriff für alle und einmal den schreibenden für berechtigte Nutzer.

Das Login-System hab ich bereits erstellt. Jedoch komme ich jetzt nicht weiter, da berechtigte Nutzer Daten über ein Formular in die DB eingeben, verändern und löschen können sollen.

Wie kann ich ein PHP Formular erstellen, bei dem die eingetragenden Daten in der DB verändert werden? Hängt das irgendwie mit $_POST zusammen?

Danke für eure Hilfe!
 
Ich frage mich gerade, ob du Informatik studierst. Mh. Wie dem auch sei: Mit PHP kannst du direkt keine Formulare verwenden, sondern dazu brauchst du HTML-Formulare. Deren Werte kannst du entweder per GET oder per POST an ein PHP-Skript senden und dort dann auswerten und eben danach in der Datenbank speichern, löschen, aktualisieren.
 
Nein,Informationsdesign :-)

Also d.h. das Ganze funktioniert ähnlich wie bei einem Kontakt-Formular? Da habe ich auch ein Formular erstellt, welches dann über PHP verarbeitet wird und die Daten aus dem Formular über $_POST angezeigt bekommen.

Vielleicht klingen meine Fragen etwas lächerlich, aber wir sind da doch sehr auf uns allein gestellt und da kommen einem vllt nicht ganz so viele Ideen zur Umsetzung :)
 
Also d.h. das Ganze funktioniert ähnlich wie bei einem Kontakt-Formular?
Ja so ähnlich.
Du brauchst auch ein Formular und ein verarbeitendes Skript.
Dieses Skript muss in diesem Fall aus der DB lesen und in die DB schreiben können.
 
Grundsätzlich funktioniert das immer nach dem gleichen Prinzip.

1. Du baust ein Formular in HTML mit entsprechenden Feldern, die einen bestimmten Namen bekommen.
2. Das Formular hat eine sog. Methode (POST, GET, etc) bedingt über das Attribut "method".
3. Das Formular hat eine sog. Aktion bedingt über das Attribute "action", was ein PHP-Script (oder eine andere Sprache) ist und die Daten aus dem Formular über $_GET oder $_POST (abhängig von 2.) entgegennimmt.
4. Die Formular-Daten werden verwendet um Daten
a) aus einem beliebigen Medium (Datenbank, Datei, Webservice, etc) zu lesen oder
b) in ein beliebiges Medium zu schreiben.
5. Für den Zugriff auf eine Datenbank benötigt man einen sog. Client der in PHP in Form von Extensions (mysql, mysqli, PDO, etc) vorhanden sein muss.

Damit haben wir erstmal das generelle geklärt. Vielleicht kannst du konkretere Fragen stellen, damit man keine Meta-Aussagen machen muss. Falls du näheres darüber wissen willst, solltest du vllt. mal ein Tutorial zu diesem Thema durcharbeiten.
 
Danke für eure Antworten, ich hab das jetzt mal folgendermaßen angedacht:

PHP:
<?php
if (empty($_POST["Albumtitel"]))  {
?>
<form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]) ?>"method="post">
Albumtitel: <br /><input type="text" name="Albumtitel" /><br />
Interpret: <br /><input type="text" name="Interpret" /><br />
Erscheinungsjahr: <br /><input type="text" name="Erscheinungsjahr" /><br />
<input type="submit" name="abgeschickt" />
</form>
<?php

} 
else {
  $mysqli= new mysqli("localhost","root","","cds");
  $albumtitel =$_POST["Albumtitel"];
  $interpret =$_POST["Interpret"];
  $erscheinungsjahr =$_POST["Erscheinungsjahr"];
  
  $insert="INSERT INTO album
            (Albumtitel,Interpret,Erscheinungsjahr)
			VALUES ('$albumtitel', '$interpret', '$erscheinungsjahr')";
   echo $insert;
   if ($ergebnis =$mysqli->query($insert)) {
   echo "<br />\n Anzahl Datensätze verändert: "
         .$mysqli->affected_rows;
   } else {
   echo $mysqli->error;
   }
   $mysqli->close();
   }
?>

Das scheint soweit zu funktionieren. War zwar nur ein kleiner Testlauf wo nur bei einer Tabelle und nicht bei mehreren gleichzeitig etwas eingefügt werden soll,aber das kann man ja beliebig erweitern... hoff ich:)
 
Du solltest dir von Anfang an angewöhnen, Benutzer-Eingaben zu filtern. Es ist nicht der Weisheit letzter Schluss, aber mysql_real_escape_string() sollte schon mindestens drin sein. Beispiel:

PHP:
$albumtitel = mysql_real_escape_string($_POST["Albumtitel"]);

Sonst sind so tolle Aktionen möglich wie deine DB komplett zu leeren.
 
Zurück