Foros del Web » Programando para Internet » PHP »

recojer datos de DB - Smarty

Estas en el tema de recojer datos de DB - Smarty en el foro de PHP en Foros del Web. Hola, estoy trabajando con smarty y soy nuevo en este tema. ojala puedan ayudarme. estoy recogiendo datos de una base de datos y necesito imprimirlos ...
  #1 (permalink)  
Antiguo 31/01/2011, 22:52
 
Fecha de Ingreso: septiembre-2009
Mensajes: 33
Antigüedad: 14 años, 7 meses
Puntos: 1
recojer datos de DB - Smarty

Hola, estoy trabajando con smarty y soy nuevo en este tema.

ojala puedan ayudarme.

estoy recogiendo datos de una base de datos y necesito imprimirlos todos en tablas de html ordenados

antes de usar smarty, probe hacerlo de esta manera y me funciono perfecto.


Código PHP:
$tposquery doquery("SELECT * FROM {{table}} WHERE equipo='".$tiposid."' LIMIT 50""tpos");
        while (
$tposrow mysql_fetch_array($tposquery)){
        echo 
"<table id=\"columnATabla\" border=\"1\" cellpadding=\"0\" cellspacing=\"0\">\n";
        echo 
"  <tr>\n";
        echo 
"    <td>Día</td>\n";
        echo 
"    <td>Tipo</td>\n";
        echo 
"    <td>Horario</td>\n";
        echo 
"    <td>Hr_dura</td>\n";
        echo 
"    <td>Tipo_eq</td>\n";
        echo 
"    <td>Equipo </td>\n";
        echo 
"    <td>Categoria</td>\n";
        echo 
"  </tr>\n";
        echo 
"  <tr>\n";
        echo 
"    <td>".$tposrow['dia']."</td>\n";
        echo 
"    <td>".$tposrow['tpo']."</td>\n";
        echo 
"    <td>".$tposrow['horario']."</td>\n";
        echo 
"    <td>".$tposrow['hr_dura']."</td>\n";
        echo 
"    <td>".$tposrow['tipo_eq']."</td>\n";
        echo 
"    <td>".$tposrow['equipo']."</td>\n";
        echo 
"    <td>".$tposrow['Categoria']."</td>\n";
        echo 
"  </tr>\n";
        echo 
"</table>\n";
        
        echo 
"<table id=\"columnATabla\" border=\"1\" cellpadding=\"0\" cellspacing=\"0\">\n";
        echo 
"  <tr>\n";
        echo 
"    <td>Estado</td>\n";
        echo 
"    <td>Razon</td>\n";
        echo 
"    <td>Region</td>\n";
        echo 
"    <td>Ubicación</td>\n";
        echo 
"    <td>Operador</td>\n";
        echo 
"    <td>Grupo</td>\n";
        echo 
"    <td>Turno</td>\n";
        echo 
"  </tr>\n";
        echo 
"  <tr>\n";
        echo 
"    <td>".$tposrow['estado']."</td>\n";
        echo 
"    <td>".$tposrow['Razon']."</td>\n";
        echo 
"    <td>".$tposrow['Region']."</td>\n";
        echo 
"    <td>".$tposrow['ubicacion']."</td>\n";
        echo 
"    <td>".$tposrow['operador']."</td>\n";
        echo 
"    <td>".$tposrow['grupo']."</td>\n";
        echo 
"    <td>".$tposrow['turno']."</td>\n";
        echo 
"  </tr>\n";
        echo 
"</table><br />\n";
        } 


ahora con smarty separa la plantilla

y tengo problemas, solo me imprime una sola tabla y no las 50.


el código lo tengo así.

Código PHP:
$tposquery doquery("SELECT * FROM {{table}} WHERE equipo='".$tiposid."' LIMIT 50""tpos");
        while (
$tposrow mysql_fetch_array($tposquery)){
            
$html->assign('tipos', array(
                                        
"dia" => $tposrow["dia"],
                                        
"tpo" => $tposrow["dia"], 
                                        
"horario" => $tposrow["horario"],
                                        
"hr_dura" => $tposrow["hr_dura"],
                                        
"tipo_eq" => $tposrow["tipo_eq"],
                                        
"equipo" => $tposrow["equipo"],
                                        
"categoria" => $tposrow["Categoria"],
                                        
"estado" => $tposrow["estado"],
                                        
"razon" => $tposrow["Razon"],
                                        
"region" => $tposrow["Region"],
                                        
"ubicacion" => $tposrow["ubicacion"],
                                        
"operador" => $tposrow["operador"],
                                        
"grupo" => $tposrow["grupo"],
                                        
"turno" => $tposrow["turno"]));

        }
$html->display('resultados.tpl');
mysql_free_result($tposquery); 

y el tpl de esta forma.

Código HTML:
{include file="header.tpl" titulo="Inicio"}

<div id="content">
	<div id="columnA">
		<h2>Bienvenidos </h2>

	
	<p>Este es un ejemplo de la tabla TIPOS.</p>
	<p>Por favor seleccione un equipo para imprimir todo los campos de la tabla seleccionada.</p>
	<table id="columnATabla" border="1" cellpadding="0" cellspacing="0">
		<tr>
			<td>Dia</td>
			<td>Tipo</td>
			<td>Horario</td>
			<td>Hr_dura</td>
			<td>Tipo_eq</td>
			<td>Equipo </td>
			<td>Categoria</td>
		</tr>
		<tr>
			<td>{$tipos.dia}</td>
			<td>{$tipos.tpo}</td>
			<td>{$tipos.horario}</td>
			<td>{$tipos.hr_dura}</td>
			<td>{$tipos.tipo_eq}</td>
			<td>{$tipos.equipo}</td>
			<td>{$tipos.categoria}</td>
		</tr>
	</table>
	
	<table id="columnATabla" border="1" cellpadding="0" cellspacing="0">
		<tr>
			<td>Estado</td>
			<td>Razon</td>
			<td>Region</td>
			<td>Ubicacion</td>
			<td>Operador</td>
			<td>Grupo</td>
			<td>Turno</td>
		</tr>
			<tr>
			<td>{$tipos.estado}</td>
			<td>{$tipos.razon}</td>
			<td>{$tipos.region}</td>
			<td>{$tipos.ubicacion}</td>
			<td>{$tipos.operador}</td>
			<td>{$tipos.grupo}</td>
			<td>{$tipos.turno}</td>
		</tr>
	</table><br />

</div>
{include file="columnab.tpl"}
{include file="footer.tpl"}

Intente poner un section y un foreach

con el section y un indice logre imprimir las 50 tablas, pero se repatian 50 veces los mismos datos, con el for no pude lograr nada.

he leído todo lo que encontré sobre smarty y no logre solucionar el problema

Gracias por la ayuda.
  #2 (permalink)  
Antiguo 31/01/2011, 23:07
Avatar de xalupeao  
Fecha de Ingreso: mayo-2008
Ubicación: Santiago, Chile
Mensajes: 749
Antigüedad: 15 años, 11 meses
Puntos: 12
Respuesta: recojer datos de DB - Smarty

http://www.smarty.net/docsv2/es/lang...on.foreach.tpl

http://www.smarty.net/docsv2/es/lang....property.loop creo que te ayudara con tu problema.


Saludos.
__________________
Hosting en Chile en Silverhost - La solución en Hosting en Chile.
  #3 (permalink)  
Antiguo 31/01/2011, 23:10
 
Fecha de Ingreso: septiembre-2009
Mensajes: 33
Antigüedad: 14 años, 7 meses
Puntos: 1
Respuesta: recojer datos de DB - Smarty

Gracias por responder.

esas paginas estan mas que leidas.

como comente mas arriba, intente con section loop y foreach

con el section, loop tuve mucha mas suerte que con foreach, lo malo es que solo logre imprimir las 50 tablas, pero en las 50 se repetian los mismos datos una y otra vez.
  #4 (permalink)  
Antiguo 31/01/2011, 23:12
 
Fecha de Ingreso: octubre-2009
Mensajes: 245
Antigüedad: 14 años, 6 meses
Puntos: 17
Respuesta: recojer datos de DB - Smarty

Aquí hay un tutorial que te puede servir http://www.php.delcode.com/database.php
__________________
Saludos.
  #5 (permalink)  
Antiguo 31/01/2011, 23:17
 
Fecha de Ingreso: septiembre-2009
Mensajes: 33
Antigüedad: 14 años, 7 meses
Puntos: 1
Respuesta: recojer datos de DB - Smarty

Cita:
Iniciado por JaimeSavines Ver Mensaje
Aquí hay un tutorial que te puede servir [URL="http://www.php.delcode.com/database.php"]http://www.php.delcode.com/database.php[/URL]
esto no lo había visto, muchas gracias probare haber que tal me va.

me funciono perfecto.

Una duda, esta es la mejor forma de hacerlo, la forma mas correcta

PD: Cualquier otra ayuda con el código lo agradeceria enormemente, ya sea otras formas de hacerlo u metodos, para tenerlo de ejemplo en el futuro.

Última edición por xMarioHx; 31/01/2011 a las 23:37

Etiquetas: smarty
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 18:50.