webForumDet fria alternativet

loop/template beskymmer

4 svar · 219 visningar · startad av Jörgen HP

Jörgen HPMedlem sedan feb. 20012 412 inlägg
#1

Hej, har följande kod (nedan). Vill presentera en meny i en templatefil med hjälp av en templateklass. Det finns 3 st poster som ska loopas ut, vilket också loopas ut om jag provar på vanligt sätt. Men nu vill bara den 1:a posten visa sig.

mvh Jörgen :)

<?php
require ( "klass.php" );

$db_host = "server";
$db_username = "username";
$db_password = "password";

$SQLstmt = mysql_connect("$db_host", "$db_username", "$db_password")
            or die ("Ett fel inträffade. Det gick inte att ansluta till servern");

mysql_select_db ("db1")
        or die ("Ett fel inträffade. Det gick inte att hitta databasen");

 $template = new Template ( "Templatefil.tpl" ); 
$strSQL = mysql_query("SELECT intArtikelId, strRubrik FROM web_artikel ORDER BY strRubrik");

while ($data = mysql_fetch_array($strSQL)) {
    $template->set ( "MENU", $data['strRubrik'], false ); 
}

$template->show (); 
 ?>

och sedan i templatefilen:

<td>
{MENU}
</td>

VikingMedlem sedan maj 20003 652 inlägg
#2

Är inte så hemma på templetates, men borde inte

$template->show ();

Vara inne i whilesatsen? :o

Som det är nu så är det väl bara den post som körs i whilesatsen sist som sparas och skrivs ut? :q

SPiNMedlem sedan mars 20007 896 inlägg
#3

Det är inte så konstigt, eftersom att nyckeln {MENU} 'försvinner' efter första gången loopen körs. Gör så här, så borde det funka:

while ($data = mysql_fetch_array($strSQL)) {
   $template->set ( "MENU", $data['strRubrik'] [b]. "\n{MENU}\n", false ); 

}

Men!
Helst av allt borde du skapa en meny-template, som du inkluderar i nyckeln MENU, något sånt här:
Meny.tpl

<a href="{LINK}">{LINK_TEXT}</a>
{MENU}

Loopen

while ($data = mysql_fetch_array($strSQL)) {
   $template->set_file ( "MENU", "Meny.tpl" );
   $template->set ( "LINK", "http://www.jorgen.hp", false );
   $template->set ( "LINK_TEXT", "Gå till Jorgen.hp!", false );
}
$template->un_set ( "MENU" );

Du får då bättre kontroll, plus att du kan göra det mer dynamiskt. Hoppas du hängde med på resonemanget. :)

SPiNMedlem sedan mars 20007 896 inlägg
#4

Viking> Nää, då visas ju sidan. :)
En mening med templates är ju att man först lägger allt i en sorts variabel, och sen när man är färdig visar allt. :)

Jörgen HPMedlem sedan feb. 20012 412 inlägg
#5

Tackar och bockar!

Efter några små justeringar fungerar det :D :bire

131 ms totalt · 3 externa anrop · v20260731065814-full.2b84b982
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)