Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

Duda en Smarty

Estas en el tema de Duda en Smarty en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola amigos. Resulta que hace muy poquito he empezado a utilizar Smarty por la funcionalidad que presenta. El caso es que cuando deseo pasar variables ...
  #1 (permalink)  
Antiguo 20/11/2007, 02:05
 
Fecha de Ingreso: julio-2006
Mensajes: 21
Antigüedad: 17 años, 10 meses
Puntos: 0
Duda en Smarty

Hola amigos.

Resulta que hace muy poquito he empezado a utilizar Smarty por la funcionalidad que presenta.

El caso es que cuando deseo pasar variables que sólo contengan un resultado no hay ningún problema, el Problema que tengo es el siguiente:

Quiero pasar el resultado de una consulta al smarty pero no consigo que rellene nada, este es mi código.

Código PHP:
$tiendas "select id,nombre,web,mail,telefono from tiendas";
        
$result=$oDriver->query($tiendas,$conex);
            while (
$fila mysql_fetch_array($result))
            {    
            
$datos = array('id' => "$fila[id]",
                        
'$nombre' => "$fila[nombre]",
                        
'web' => "$fila[web]",
                        
'telefono' => '$fila[telefono]'                        
                        
);    
            }
            
$smarty->assign('tiendas',$datos);
            
$smarty->display('index.tpl'); 
En la Plantilla Index.tpl

Código HTML:
{foreach name=tiendas item=result from=$tiendas}
<table>
     <tr> {$result.nombre}</tr>
           <td> {$result.web} | {$result.telefono} </td>
     </tr>
</table>
</foreach> 
¿En qué estoy fallando?

Desde ya Gracias.

Saludos
  #2 (permalink)  
Antiguo 20/11/2007, 02:32
 
Fecha de Ingreso: octubre-2004
Mensajes: 2.627
Antigüedad: 19 años, 6 meses
Puntos: 48
Re: Duda en Smarty

Es un fallo de PHP simple:
Código PHP:
$datos = array('id' => "$fila[id]",
                        
'$nombre' => "$fila[nombre]",
                        
'web' => "$fila[web]",
                        
'telefono' => '$fila[telefono]'                        
                        
); 
Esta mal. Pon
Código PHP:
$datos[] = array('id' => $fila['id'],
                        
'nombre' => $fila['nombre'],
                        
'web' => $fila['web'],
                        
'telefono' => $fila['telefono']                        
                        ); 
Con los [] consigues que en cada iteracion se cree un nuevo elemento en el array $datos. Y las " estaban mal en los valores.

Ahora puedes hacer un print_r($datos) para comprobar que tiene los valores correctos.
  #3 (permalink)  
Antiguo 20/11/2007, 02:38
 
Fecha de Ingreso: julio-2006
Mensajes: 21
Antigüedad: 17 años, 10 meses
Puntos: 0
Re: Duda en Smarty

Gracias por la respuesta, ahora parece que va funcionando.

Pero cuando cargo el template index.tpl, que tiene esta estructura:
Código HTML:
{foreach name=tiendas item=result from=$tiendas}
<table>
     <tr> {$result.nombre}</tr>
           <td> {$result.web} | {$result.telefono} </td>
     </tr>
</table>
{/foreach}
Sólo visualizo la primera letra de cada elemento del array.

¿Estoy declarando mal el foreach? ¿Hay que utilizar section ?

Gracias
  #4 (permalink)  
Antiguo 20/11/2007, 06:47
 
Fecha de Ingreso: julio-2006
Mensajes: 21
Antigüedad: 17 años, 10 meses
Puntos: 0
Re: Duda en Smarty

Ya lo arreglé.

Tenía una variable duplicada y por eso lo hacía mal.

Gracias
  #5 (permalink)  
Antiguo 21/11/2007, 20:58
Avatar de enriqueplace  
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 19 años
Puntos: 32
Re: Duda en Smarty

Antes de pasar la información al template asegúrate que sabes cómo está formada, tal vez con un var_dump, o directamente en el template con un {debug}
__________________
Blog phpsenior.com Cursos a Distancia surforce.com
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:39.