Gästebuch: Brauche Hilfe bei fetch_array :(

Acriss

Gesperrt
Guten Abend,
bastel mir ja gerade ein Gästebuch, und brauche Hilfe.
Ich habe den Login jetzt geschafft, lag wohl daran, das kopierte codes nicht erkannt wurden, also alles abgetippt -.-
Nun will ich die Daten in eine Datenbank schreiben, jedoch funktioniert es irgendwie nicht.
Die Scripte:
PHP:
//formular.php
echo'<form method="post" action="mysql.php">';
echo'<table border="0"> <tr> <td>';
echo'Betreff:</td><td><input type="text" name"betreff"></td></tr>';
echo'<tr><td>News:</td><td><textarea name="news" cols="30" rows="7"></textarea></td>';
echo'</table>';
echo'<input type="submit" name"post" value="Posten">';
echo'</form>';
PHP:
//mysql.php

error_reporting(E_ALL);

$connect = mysql_connect('localhost', 'benutzer', 'passwort');
$dbwahl = mysql_select_db('petersilies');
if(!$dbwahl) echo'DB nicht vorhanden'; //prüfen ob Datenbank vorhanden ist

if($connect) // Wenn ich mit der datenbank verbunden bin
	{
	echo'Verbindung steht<br>';
         $betreff = $_POST['betreff']; // line 12
         $news = $_POST['news'];
	$insert = "INSERT INTO news (betreff, text) VALUES ('$betreff', '$news')";
	$mach = mysql_query($insert);

         $select = "SELECT * FROM news";
         $lesen = mysql_query($select, $connect);

         while ($row = mysql_fetch_array($lesen)) {
   	printf ("ID: %s  Betreff: %s News: %s", $row[0], $row[1], $row[2]);
	}

	if($mach) //Wenn das eintragen erfolgreich war
         	{
                 echo'News eingetragen';

	        }
         elseif(!$mach) //Wenn es nicht erfolgreich war
         	{
	        echo'Fehler: News konnten nicht eingetragen werden.';
	        }
Die Ausgabe:
Code:
Verbindung steht

Notice: Undefined index: betreff in /usr/export/www/vhosts/funnetwork/hosting/petersilies/news/mysql.php on line 12

Fehler: News konnten nicht eingetragen werden.
Tja, da stehe ich vor meinem Problem :(
 
Zuletzt bearbeitet:
Hi,

ich hab das nur mal kurz überflogen, aber deine ganzen If-Abfragen verwirren etwas...
Vermutlich hast du dich damit selbst übers Ohr gehauen, dass geht nämlich auch mit weniger Aufwand.

Solltest du nochmal überlegen.

Gruss
Commi
 
Hi,

ich hab das nur mal kurz überflogen, aber deine ganzen If-Abfragen verwirren etwas...
Vermutlich hast du dich damit selbst übers Ohr gehauen, dass geht nämlich auch mit weniger Aufwand.

Solltest du nochmal überlegen.

Gruss
Commi

4 ifs nennst du viel?
naja
Ich habe jetzt mal kommentiert wozu die gut sind^^
 
Viel habe ich nicht behauptet, nur dass sie teilweise unnötig sind :) (schlecht formuliert)
Man könnte es wohl auch anders lösen. Vermutlich ist da aber der Wurm drin.
 
Schau dir das mal genauer an :)

PHP:
echo'Betreff:</td><td><input type="text" name"betreff"></td></tr>';
echo'<tr><td>News:</td><td><textarea name="news" cols="30" rows="7"></textarea></td>';

Edit:

Würde auch diese Zeile erklären:

Code:
Notice: Undefined index: betreff ...
 
Zuletzt bearbeitet von einem Moderator:
Da gibt es doch einen einfachen Trick:

PHP:
$betreff = $_POST['betreff']; // line 12
$news = $_POST['news'];

$connect = mysql_connect('localhost', 'benutzer', 'passwort');
$dbwahl = mysql_select_db('petersilies');
  $insert = "INSERT INTO news (betreff, text) VALUES ('$betreff', '$news')";
$mach = mysql_query($insert);

Wenn es so funktioniert, hast du einen Dreher in deinen If-Abfragen.
Geht es so auch nicht, würde ich die Verbindung genauer betrachten. :)

Edit:

Zum Thema vereinfachen... Das könnte man in etwa so machen:
(ungetestet und in Handschrift :) )

PHP:
error_reporting(E_ALL);

$connect = mysql_connect('localhost', 'benutzer', 'passwort') or die ("Keine Verbindung moeglich");
$dbwahl = mysql_select_db('petersilies') or die ("Datenbank existiert nicht");

$betreff = $_POST['betreff'];
$news = $_POST['news'];

$insert = "INSERT INTO news (betreff, text) VALUES ('$betreff', '$news')";
$mach = mysql_query($insert);

// Keine Ahnung, für was du an dieser Stelle die Daten ausliest. Habs einfach mal weggelassen

// $select = "SELECT * FROM news";
// $lesen = mysql_query($select, $connect);

// while ($row = mysql_fetch_array($lesen)) {
// printf ("ID: %s  Betreff: %s News: %s", $row[0], $row[1], $row[2]);

if($mach){ echo'News eingetragen'; }
else{ echo'Fehler: News konnten nicht eingetragen werden.'; }
 
Zuletzt bearbeitet von einem Moderator:
Zurück