zwei (fast) gleiche Arryas, nur eins wird richtig gelesen
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
abfrage
anzahl
argument
array
code
datei
datum
einfaches forum
entsprechende teil
folgendes stelle
forum
kategorie
kopf
ordern
problem
string
tabelle
teil
test
wundern
-
Hallo ihr alle mal wieder!
Ich bin ja schon ganz glücklich, dass sich mein anderes Problem heute so schnell klären konnte, ich hab aber noch eins... :)
Ich will für meine kleine Community auch ein einfaches Forum schreiben, das ich mir im Kopf auch schon zurecht gelgt habe. Das ist aber nebensächlich, es geht um Folgendes:
Um die verschiedenen eröffneten Themen aus der Datenbank (Tabelle: Forum) auszulesen, habe ich folgenden Quelltext geschrieben (nicht über komische Dopplungen wundern, wird noch erklärt):
$sql = 'SELECT Forum.ID, Forum.Thema, User.Username AS Autor, Forum.Datum, Forum.Anzahl FROM Forum JOIN User ON Forum.AutorID = User.ID WHERE Forum.Kategorie = ? ORDER BY Forum.Datum DESC'; if (!$stmt = $db->prepare($sql)) { return $db->error; } $stmt->bind_param('s', $Kategorie['LANimNetz']); if (!$stmt->execute()) { return $stmt->error; } $stmt->bind_result($ID, $name, $autor, $datum, $anzahl); $neu = array(); while ($stmt->fetch()) { $thema[] = array('ID' => $ID, 'thema' => $name, 'autor' => $autor, 'datum' => $datum, 'anzahl' => $anzahl); } var_dump($thema); $stmt->close(); $sql = 'SELECT ID, Thema, Datum, Anzahl FROM Forum WHERE Forum.Kategorie = ? ORDER BY Forum.Datum DESC'; if (!$stmt = $db->prepare($sql)) { return $db->error; } $stmt->bind_param('s', $Kategorie['LANimNetz']); if (!$stmt->execute()) { return $stmt->error; } $stmt->bind_result($ID, $thema, $datum, $anzahl); $neu = array(); while ($stmt->fetch()) { $themab[] = array('ID' => $ID, 'thema' => $thema, 'datum' => $datum, 'anzahl' => $anzahl); } $stmt->close(); var_dump($themab); $ret['data']['LANimNetz'] = $thema;
Die erste Abfrage ist die, die ich eigentlich haben will, hier wird der Autor des Themas gleich mit ins Array geschrieben. Die zweite Abfrage habe ich noch dazugeschrieben, und einfach mal den "JOIN"-Teil weggelassen. (über return werden die Daten an die template-Datei weitergegeben.) Die Fehlermeldung, die ich nun bekomme, wenn ich "$thema" weitergebe, ist
Warning: Invalid argument supplied for foreach() in H:\xampp\htdocs\templates\forum_overview.tpl on line 34
der entsprechende Teil von "forum_overview.tpl" sieht so aus (beginnend mit Zeile 33):
<?php foreach ($data['LANimNetz'] as $LANimNetz) { echo " <tr>\n"; echo ' <td><a href="index.php?section=forum&action=view&ID='.$LANimNetz['ID'].'">'. htmlspecialchars($LANimNetz['thema'])."</a></td>\n"; echo ' <td>'.htmlspecialchars($LANimNetz['autor'])."</td>\n"; echo ' <td>'.htmlspecialchars($LANimNetz['datum'])."</td>\n"; echo ' <td>'.$LANimNetz['anzahl'].'</td>'."\n"; echo " </tr>\n"; } ?>
mich wundert es nur, dass die template-datei mit "$themab" zurechtkommt, aber nicht mit $thema", denn mit var_dump(); erhält man Folgendes (Stelle im Quelltext s.o.):
"$thema":
array(1) { [0]=> array(5) { ["ID"]=> int(1) ["thema"]=> string(4) "test" ["autor"]=> string(5) "p@ge!" ["datum"]=> string(19) "2010-11-02 20:41:00" ["anzahl"]=> int(0) } }
"$themab":
array(1) { [0]=> array(4) { ["ID"]=> int(1) ["thema"]=> string(4) "test" ["datum"]=> string(19) "2010-11-02 20:41:00" ["anzahl"]=> int(0) } }
Wieso klappt "$themab", und "$thema" nicht? Wär schön wenn mir hier jmd weiterhelfen könnt, Google nämlich leider nicht... -.-
mfg -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
wie ist denn
(in$data['LANimNetz']
forum_overview.tpl
) definiert?
edit: kurz was ausgebessert
Beitrag zuletzt geändert: 14.11.2010 21:00:46 von nomis -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage