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.