Eingabeformular an MYSQL Datenbank schicken

Memfis

Erfahrenes Mitglied
Hallo.

Ich habe da ein kleines Problem. Es geht darum, dass ich ein kleines Gästebuch / Newsscript (ist vom Codeaufbau ja fast das gleiche) machen will.
Ich habe es bereits geschft ein paar Einträge in die Datenbank zu schreiben, allerdings nur mit dem direkten Befehl und nicht per Eingabeformular.

Der Einfachheit kopiere ich eben mal den bisher erstellten Quellcode hier herrein:

Datei: eintragen.php

PHP:
<?php

include ("define.php");
include ("mysql_connect.php");

if ($action == "add")
{ 
}

//MYSQL_QUERY("INSERT INTO test (POSTER,TITLE,NEWS) VALUES ('Memfis','Wieder ein Test','Jetzt muss es noch 
//per Formular funktionoeren, dann habe ich es geschafft')");


else
{

?>

<html>
<head>
<title> Gästebuch auf MSQL Basis </title>
</head>

<body>
<p align="center">
<form action="eintragen.php?action=add" method="post">
<table border="2">
<tr>
<td>Name: </td><td><input type="text" name="POSTER"></td>
</tr>
<tr>
<td>Title: <td><input type="text" name="TITLE"></td></td>
</tr>
<tr>
<td colspan="2">Eintrag </td>
</tr>
<tr>
<td colspan="2"><textarea cols="30" rows="7" name="NEWS"></textarea></td>
</tr>
<tr>
<td><input type=submit name="ok" value="ok"></td>
<td align="right"><input type="reset" value="nochmal neu"></td>
</tr>
</table>
</form>
</p>
<?php
}
?>

Dann habe ich auch noch das Problem, dass die News etwas unschön angezeigt werden, nämlich so:
Memfis > Vierte News > Jetzt muss es noch per Formular funktionoeren, dann habe ich es geschafft

Erstens nerven die ">" und zweitens habe ich versucht bei der Ausgabe das ganze ein wenig zu ordnen, aber auch das ging nicht, den sobald ich folgenden Code bei der Ausgabe "auseinderreise" bekomme ich Fehler über Fehler:

PHP:
echo($row['POSTER']." &gt; ".$row['TITLE']." &gt; ".$row['NEWS']."<br />\n");

Wie kann man das jetzt ordentlich (zum in einer Tabelle) auflisten ?

Gruß Memfis
 
Zuletzt bearbeitet von einem Moderator:
In die Tabelle schreibst du die Variablen aus dem $_POST Array. In deinem Fall sind das

$_POST['POSTER']
$_POST['TITLE']
$_POST['NEWS']

Damit das ganze aus der textarea auch schön formatiert wird und bei wiederausgeben auch korrekt angezeigt wird baust du noch nl2br ein und kommst dann zu einem Code der ca so aussieht wie hier der:
PHP:
if($_REQUEST['action'] == "add"){ //REQUEST oder GET Array verwenden. siehe register_globals Problematik seit PHP 4.2.0
 $news = nl2br($_POST['NEWS']);
 $query = "INSERT INTO test (POSTER,TITLE,NEWS) VALUES ('$_POST[POSTER]','$_POST[TITLE]','$news')";
 mysql_query($query); // Natürlich vorher noch DB-Connection herstellen.
}
So das sollte es sein.

Bei der Ausgabe der Daten aus der Datenbank musst du halt nur die entsprechenden while Schleifen bauen um das ganze aus der DB auszulesen und dann kannst du, wie du das auch schon gemacht hast mit $row['spaltenname'] auf die Werte zugreifen.
 
Danke dir, aber leider ist die Sache jetzt auch nicht perfekt. Wenn ich das Forumlar über die Datei "eintragen.php" aurufe kommt das
Sie wurden erfolgreich an der Datenbank angemeldet.
Notice: Undefined index: action in C:\Inetpub\wwwroot\php_test\newsscript\eintragen.php on line 7

Wenn ich die Datei so aufrufe: eintragen.php?action=add

kommt das:
Sie wurden erfolgreich an der Datenbank angemeldet.

Notice: Undefined index: NEWS in C:\Inetpub\wwwroot\php_test\newsscript\eintragen.php on line 9

Notice: Undefined index: POSTER in C:\Inetpub\wwwroot\php_test\newsscript\eintragen.php on line 10

Notice: Undefined index: TITLE in C:\Inetpub\wwwroot\php_test\newsscript\eintragen.php on line 10

Erst wenn ich einmal auf "OK" klicke sieht die Seie richtig aus. An er URL oben ändert sich allerdings nichts.
 
Du musst ja auch erstmal was eintragen in das Formular und kannst nich sofort über Add aufrufen.

Ausserdem ist der Check auf action==add dämlich, da du nur dahin weiterleitest. Überprüfe doch lieber ob
PHP:
$_REQUEST['ok'] == "ok";
ist, was nur eintritt, wenn du den submit Button gedrückt hast.
 
Jetzt kapier ich überhaupt nichts mher (und es geht auch irgendwie nichts mher.
Ich will doch nur über ein Eingabeforular die Daten in die Datenbank bekommen und von dort wieder auslesen und das ohne dass der Besucher meiner Seite gleich ne Fehlermeldung auf´s Auge gedrückt bekommt.
 
Kann mir jemannd n simples Beispielscript schreiben, wie ich Daten aus Forluaren in eine MYSQL Datenabk eintrage ?
 
Ich verwende die einfache Ausführung zur Übermittlung.

PHP:
if ($gesendet)
   {
      include("./conf.inc.php"); //einbinden der zugriffsdaten
      
      $db = mysql_connect("$host","$user","$pass");

      $sqlab = "insert $table";
      $sqlab .= "(link_thumb, link, beschreibung) values ";
      $sqlab .= "('./thumb/$lt', './wallpapers/$lw', '$be')";

      mysql_db_query("$database", $sqlab);

      $num = mysql_affected_rows();
      if ($num>0)
         echo "Es wurde 1 Datensatz hinzugefügt<p>";
      else
      {
         echo "Es ist ein Fehler aufgetreten, ";
         echo "es wurde kein Datensatz hinzugefügt<p>";
      }
      mysql_close($db);
   }

Vielleicht hilfts ja weiter.

Caliterra
 
Zurück