kostenloser Webspace werbefrei: lima-city


zwei (fast) gleiche Arryas, nur eins wird richtig gelesen

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    lan-im-netz

    lan-im-netz hat kostenlosen Webspace.

    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&amp;action=view&amp;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
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. wie ist denn
    $data['LANimNetz']
    (in
    forum_overview.tpl
    ) definiert?

    edit: kurz was ausgebessert

    Beitrag zuletzt geändert: 14.11.2010 21:00:46 von nomis
  4. Autor dieses Themas

    lan-im-netz

    lan-im-netz hat kostenlosen Webspace.

    die index.php wandelt das um:
    $data = $ret['data'];
  5. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!