weardstuff
weardstuff

Reputation: 807

PHP Template system output

I'm using template system in php, so my code is like that for example...

$template->addVar ( 'thenameoftemplate', 'thenameofsubtemplate',"what to output");

And this code i output in the html file like... {thenamefsubtemplate}..

But i have a problem, when i try to output from database something with in the template like the above example but from database, it isn't working, only 1 output from the rows, but when echo it outside of the template it works..

I tryed to output with, foreach,while eaven with for from the database and output it in the template but it's showing just one result.

How to fix that, i wan't to row all the result and output them .

Update

Actualy i don't know what is the template system, some script was gaved to me and.. everythingwas ok until the database output..

Here is my last try with the for..

if (check_group_access_bool('show_admin_panel_button')) {
            $template->addGlobalVar('admin','<BR><a href="/users/download_list/'. $user[0]['id'] .'.html">виж Ñмъкваните пеÑни</a><BR><img src="/images/icons/edit-user-32x32.png" hspace="2" alt="редактирай" align="absmiddle"><a href="/admin/edit_user/'. $user[0]['id'] .'.html">редактирай</a>');
}
            $sudtwo = $_SESSION['user']['id'];
$fvsmt = mysql_query("select * from fav where user_id=$sudtwo");
if(isset($_SESSION['user']['id'])){

while($rowings = mysql_fetch_array($fvsmt)) {
$template->addVar( 'userprofile', 'userprofiletwo',"<tr><th nowrap valign=\"TOP\" align=\"LEFT\">  ñòèë: ".$rowings['name']." <form method=\"post\"><input type=\"submit\" value=\"premahni ot liubimi\" name=\"del\"></form>></th></tr>");

if(isset($_POST['del']))
{
mysql_query("DELETE FROM fav WHERE name_id=".$rowings['name_id']."");



}
echo"".$rowings['name']."<br>";

}
}

This is in the php and here is the HTML

<template:tmpl name="userprofile">
{USERPROFILETWO}
</template:tmpl>

That's how it outputs..

In the php code, where is my echo it works, but here in the html outputs only one row.

Upvotes: 0

Views: 392

Answers (1)

smcphill
smcphill

Reputation: 826

edit: OK, you're using something called patTemplate, which hasn't been updated in a few years. I found some documentation though, and once you've set up your PHP correctly, this in your html should work:

<table> 
  <patTemplate:tmpl name="userprofile"> 
    {userprofiletwo}
  </patTemplate:tmpl>
</table>

BUT, your PHP is a bit of a mess. What you have is basically:

for () {
  $rowings = ...;
  //you are overwriting the variable each time here
  $template->addVar('userprofile', 'userprofiletwo', $rowings); 
}

And I think what you want is something like:

$rowings = array();
for () {
  // make an array of your data
  $rowings[] = ...;
}
// and call addVar *once*
$template->addVar('userprofile', 'userprofiletwo', $rowings);

Now {userprofiletwo} is an array, and you can loop over that in your template.

Also, I'm not sure what the purpose of this bit of code is:

if(isset($_SESSION['user']['id'])){
}

as it doesn't really do anything...

Upvotes: 2

Related Questions