Hi,
Bin grade dabei ein Forum zu schreiben. Mir gehts dabei weniger drum das es schön wird oder so, wollte das eigentlich nur so zum üben per handschreiben und keine Vorlage nehmen also bitte net sowas vorschlagen -.- (kam in andren Foren zuerst). Mein Problem ist folgendes:
Wenn ich mit sendanswer.php (Quelllcode unten) eine Antwort eintragen will, kommt folgender Fehler: "Warning: Invalid argument supplied for foreach() in C:\Programme\Xampp\htdocs\forumtest\sendanswer.php on line 15"
Hier der Quellcode(Sendanswer.php):
PHP-Code:
<?php
<?PHP session_start() ?>
<html>
<head>
<title>Antwort wurde abgeschickt<title>
</head>
<body>
<?PHP
include("topicarray.php");
$name=$_SESSION["name"];
$topicid=$_SESSION["topicid"];
$content=$_POST["content"];
$time=time();
$counter=1;
print_r ($topic[$topicid]["antworten"]);
foreach ($topic[$topicid]["antworten"] as $nr => $wert) {
if($nr != "") {
$counter++;
} else {
continue;
}
}
$antworten = $topic[$topicid]["antworten"];
$antworten[$counter] = array("name" => $name,
"timestamp" => $time,
"content" => $content);
$temp = serialize($antworten);
include("mysqlconnect.php");
$anfrage = "UPDATE topic SET antworten='$temp' where topicid='$topicid'";
$ergebnis = mysql_query($anfrage);
if(! $anfrage)
die("Änderung fehlgeschlagen".mysql_error());
print "Daten erfolgreich geändert!
";
print "
[url='topicoverview.php']Zurück zur Übersicht[/url]";
?>
</body>
</html>
?>
Falls ihr den auch noch braucht:
Quellcode topicarray.php:
PHP-Code:
<?php
<html>
<body>
<?php
$benutzer = "root";
$passwort = "";
$db = "forum";
$link = mysql_connect("localhost", $benutzer, $passwort);
if (! $link)
die ("Keine Verbindung zu MySQL");
mysql_select_db($db, $link)
or die ("Konnte Datenbank\"$db\" nicht öffnen: ".mysql_error());
$ergebnis = mysql_query( "SELECT * FROM topic");
$user = array();
while ($datensatz = mysql_fetch_row($ergebnis)) {
$topicid = $datensatz[0];
$topic[$topicid]["topic"] = $datensatz[1];
$topic[$topicid]["content"] = $datensatz[2];
$topic[$topicid]["author"] = $datensatz[3];
$topic[$topicid]["time"] = $datensatz[4];
$topic[$topicid]["kategorie"] = $datensatz[5];
$topic[$topicid]["antworten"] = unserialize($datensatz[6]);
$topic[$topicid]["lastedited"] = $datensatz[7];
}
?>
</body>
</html>
?>
Also wenn ich vor der Foreach schleife per Print_r den Array $topic[$topicid]["antworten"] ausgebe, kommt nix, das müsste doch heissen das der Array gar net da ist, aber wenn ich ihn in der includeten Datei ausgebe, dann erscheint er sofort...
Weiss jemand worans liegt oder kann mir jemand nen tipp geben, wie ichs besser machen könnte?