php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 26.04.2005, 10:13  
Gast
 
Beiträge: n/a
Standard Invalid Argument supplied for foreach()

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?
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 26.04.2005, 10:40  
Gast
 
Beiträge: n/a
Standard

omg ich bin doch ein depp
habs problem selbst gefunden, in die session aus der die variablen gelesen werden sollen steht ja noch gar nix drin
sry nochmal... da hätt ich auch selbst drauf kommen können (bin ich ja auch)
 
Alt 26.04.2005, 10:49  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.032
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Wenn ich dich recht verstehe soll dieser Code lediglich einen neuen Beitrag in die Datenbank schreiben. Mit einem halbwegs vernünftigen DB-Design würdest du dazu etwa einen Drittel des Codes benötigen. Serialisierte Daten in die DB zu schreiben widerspricht sämtlichen Grundsätzen von relationalen Datenbanken. Und wozu liesst du die ganze Tabelle aus (und erst noch mit "SELECT * FROM ...), um nur einen neuen Beitrag einzufügen?
$topicid überschreibst du ja aus $_SESSION, und wahrscheilich existiert der entsprechende Eintrag nicht.
Aber wie gesagt, überdenke das Design, sowohl der Datenbank, als auch des Programms.Es ist nicht immer so, dass komplzierter auch besser ist.
__________________
Gruss
L
lazydog ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] PHP -&gt; Ordner anlegen der sich auch beschreiben lässt?! Nightuser PHP Tipps 2008 13 30.06.2008 23:51
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource Zabimaru PHP Tipps 2008 7 02.04.2008 13:25
Warning: fwrite(): supplied argument is not a valid stream Venom PHP Tipps 2007 27 15.12.2005 18:14
mysql_result(): supplied argument is not a valid MySQL PHP Tipps 2005-2 4 25.08.2005 14:44
Suche Tipps für Persormance-Steigerung (Geld für Nützliches) Beitragsarchiv 18 16.08.2005 10:57
[Erledigt] Warning: mysql_num_fields(): supplied argument is not a... Datenbanken 18 09.06.2005 21:03
ShowIt_V1.8.14 PHP Tipps 2005 1 23.03.2005 19:13
mysql_fetch_array(): supplied argument... Sclot Datenbanken 3 09.03.2005 16:10
frage zum arbeiten mit dateien PHP Tipps 2005 21 01.03.2005 13:22
mysql_fetch_row(): supplied argument ... PHP Tipps 2005 5 21.02.2005 19:19
Warning: Invalid argument supplied for foreach() in D:\XAMPP PHP Tipps 2005 11 02.02.2005 12:22
Fehlermeldung: failed to open stream: Invalid argument in . Helmuth74 PHP Tipps 2005 4 17.01.2005 13:55
wieder einmal : Warning: mysql_num_rows(): supplied argument nieselfriem PHP Tipps 2004-2 8 29.11.2004 13:30
Invalid argument supplied for foreach() in ........ PHP Tipps 2004 2 07.10.2004 14:38
Warning: mysql_num_rows(): supplied argument is not a valid PHP Tipps 2004 2 06.09.2004 21:26

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
invalid argument supplied for foreach(), invalid argument supplied for foreach, invalid argument supplied for foreach() in, invalid argument supplied for foreach() obwohl print_r, php invalid argument supplied for foreach(), invalid argument supplied for foreach#, foreach ($passwort, php \invalid argument supplied for foreach()\, php foreach, invalid argument supplied for foreach(), php include invalid argument

Alle Zeitangaben in WEZ +2. Es ist jetzt 09:54 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.