[Smarty] Schleifen Problem

Devlor

Well-known member
20 Oktober 2009
176
4
Hallo,

bei mir ist es sehr ewig her das ich Programmiert habe und bin seit kurzem wieder dabei. Vieles hat sich in den letzten Jahren getan... Ich habe Smarty die Template Engine entdeckt und finde das teil eigentlich klasse.
Dennoch hab ich einige "einsteiger"-Probleme.

Mein Problem:

Gibt es 5 Einträge davon sind 2 durch die querys gesperrt dann müssten zumindest 3 Datensätze angezeigt werden.
Wenn ich das selbe Script ohne Smarty laufen lassen klappt alles wunderbar.
edit: das sieht man ganz gut daran das ich direkt in der while schleife zu testzwecken 2 echos ausgebe um zu schauen ob überhaupt ein anderer Fehler besteht aber scheinbar nicht...

Sobald ich aber versuche die Ausgabe über Smarty auszugeben bleiben die Werte leer also es wird nur eine leere tabelle ausgegeben :/

Die Templatedatei:

PHP:
{foreach from=$con item=con }
             <tr>
               <td valign="top">{$con.questid}</td>
               <td valign="top">{$con.questname}</td>
               <td valign="top">{$array.questtext}</td>
             </tr>
         
         {/foreach}

Die PHP-Datei:

PHP:
if($site==""){
    $i = 0;
    $inhalt=array();
$questquery=$db->query("SELECT * FROM quest_done_1 WHERE userid!='".$row['id']."'");
while($check=$db->fetch_array($questquery))
{

 $check['questid'];
 $questqry=$db->query("SELECT questid, questname, questtext FROM quest_1 WHERE questid = '".$check['questid']."'");
 // echo "SELECT * FROM quest_1 WHERE questid != '".$check['questid']."' <br>";
 

 
   while($check2=$db->fetch_array($questqry)){
    echo "nr";
    echo $check2['questid'];
    echo $check2['questname'];
    echo "<br>";
     $inhalt[]=$check2;

        $i++;
        
}
}
     $smarty->assign(’con’, $inhalt);
     $smarty->display('user_quests_overall.tpl');

    // default
}


Ich bedanke mich bei euch im vorraus.

Gruß
 
Versuch es mal, in dem Du "from" und "item" unterschiedlich benennst. Smarty weiß in diesem Falle innerhalb der Foreach-Schleife nicht ob du nun das Array $con selbst meinst, oder das Schleifenresultat.

also:

Code:
$smarty->assign('_CON', $inhalt);

und

Code:
{foreach name=con item=con from=$_CON}

Edit:
was ist in der dritten Zelle {$array.questtext}? Sollte das dann nicht auch eher {$con.questtext} sein?


Gruß
 
Hallo TerraTux,

danke erstmal für deine Mühe dir mein Problem anzuschauen.

Ich habs grad getestet, erstklassige Fehleranalyse! Mein Problem das ich seit mehreren Tagen hatte ist nun endlich gelöst und ich kann beruhigt schlafen gehen ^^.

Der dritte Punkt den du ausführst, war nur zu testzwecken von mir gesetzt worden, habe mir diverse tutorials zu smartys angesehen aber einfach keine ahnung gehabt...

Vielen Dank !

Gruß

Devlor