Smarty: Devolviendo datos de la base de datos

Por lo general, recupero y devuelvo datos de una base de datos como esta:

$sql = "SELECT * FROM users";
$res = mysql_query($sql);
while ($row = mysql_fetch_assoc($res)) {
    echo  $row['id'];
    echo  $row['name'];
}

Pero, ¿cómo devolver los datos usando Smarty?
creo que tengo que asignar $row:

$smarty->assign('row', $row);
$smarty->display('search.tpl');

Pero no estoy seguro de cómo mostrarlo realmente. Esto no funciona:

{foreach from=$row item=item}
     {$item}
{/foreach}

preguntado el 01 de mayo de 12 a las 22:05

1 Respuestas

Deberías usar {$row.id} y {$row.name} en su plantilla (sin foreach).

actualización Si desea obtener todas las filas:

$rows = array();
while ($rows[] = mysql_fetch_assoc($result)) {}
$smarty->assign('rows', $rows);

En plantilla:

{foreach from=$rows item=row}
     {$row.name}
{/foreach}

contestado el 01 de mayo de 12 a las 22:05

Gracias, pero los necesito todos, así que debería haber un ciclo. - Evgenij Reznik

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.