Recordad que para pedir soporte alguno, debéis facilitar los datos de soporte oportunos por favor, mirad aquí y leer las Normas generales del foro, esto nos servirá de ayuda para dar el mejor soporte..
Gracias.
La Administración de phpBB España.
Error con bucle while php
Error con bucle while php
Saludos cordiales,disculpen las molestias que pueda causar.
Estoy haciendo un proyecto para la institución a la que pertenezco "Cuerpo de Bomberos del Estado Mérida", resulta que estoy haciendo un historial del mantenimiento de las unidades.
Bien, cuando hago el bucle while + mysql_fetch_array, efectivamente el lee la cantidad de filas que tienen el la unidad X pero no me muestra el primer registro encontrado en pantalla, se salta un espacio el indice, espero em puedan ayudar, saludos cordiales a todos
Por acá les dejo el código:
<?php
include('localhost.php');
$codigo2= $_POST['codigo2'];
$registros = mysql_query("SELECT * FROM historial_rutina where codigo2= '$codigo2' ");
$fila = mysql_fetch_array($registros);
$numunidad=mysql_num_rows($registros);
if ($numunidad==0)
{
echo "La unidad no ha sido registrada aún en el sistema, diríjase al módulo ..::REGISTRO DE UNIDADES::... y proceda a ingresar la misma";
exit();
}
<?php
while ($fila=mysql_fetch_array ($registros))
{
?>
<tr>
<form action="imprimir_rutina.php" method="post">
<td width="26%" align="right" valign="middle"><div align="center"> <?php echo $fila["codigo2"];?>
<input type="hidden" name="codigo2" id="codigo2" value="<?php echo $fila['codigo2'] ?>">
</div> </td>
<td width="25%" align="right" valign="middle"><div align="center"> <?php echo $fila["fecha"];?>
<input type="hidden" name="fechaimprimir" id="fechaimprimir" value="<?php echo $fila['fecha'] ?>">
</div> </td>
<td width="25%" align="right" valign="middle"><div align="center"> <?php echo $fila["funcionario"];?> </div> </td>
<td width="24%" align="right" valign="middle"><div align="center"> <button type="submit" class="btn btn-success">Imprimir Rutina</button> </div> </td>
</form>
</tr>
<tr>
</tr>
<?php
}
?>
Una vez más espero me puedan ayudar, mil gracias.
Estoy haciendo un proyecto para la institución a la que pertenezco "Cuerpo de Bomberos del Estado Mérida", resulta que estoy haciendo un historial del mantenimiento de las unidades.
Bien, cuando hago el bucle while + mysql_fetch_array, efectivamente el lee la cantidad de filas que tienen el la unidad X pero no me muestra el primer registro encontrado en pantalla, se salta un espacio el indice, espero em puedan ayudar, saludos cordiales a todos
Por acá les dejo el código:
<?php
include('localhost.php');
$codigo2= $_POST['codigo2'];
$registros = mysql_query("SELECT * FROM historial_rutina where codigo2= '$codigo2' ");
$fila = mysql_fetch_array($registros);
$numunidad=mysql_num_rows($registros);
if ($numunidad==0)
{
echo "La unidad no ha sido registrada aún en el sistema, diríjase al módulo ..::REGISTRO DE UNIDADES::... y proceda a ingresar la misma";
exit();
}
<?php
while ($fila=mysql_fetch_array ($registros))
{
?>
<tr>
<form action="imprimir_rutina.php" method="post">
<td width="26%" align="right" valign="middle"><div align="center"> <?php echo $fila["codigo2"];?>
<input type="hidden" name="codigo2" id="codigo2" value="<?php echo $fila['codigo2'] ?>">
</div> </td>
<td width="25%" align="right" valign="middle"><div align="center"> <?php echo $fila["fecha"];?>
<input type="hidden" name="fechaimprimir" id="fechaimprimir" value="<?php echo $fila['fecha'] ?>">
</div> </td>
<td width="25%" align="right" valign="middle"><div align="center"> <?php echo $fila["funcionario"];?> </div> </td>
<td width="24%" align="right" valign="middle"><div align="center"> <button type="submit" class="btn btn-success">Imprimir Rutina</button> </div> </td>
</form>
</tr>
<tr>
</tr>
<?php
}
?>
Una vez más espero me puedan ayudar, mil gracias.
- AlfredoRamos
- Mensajes: 1235
- Registrado: 14 Ene 2017, 22:18
- Género:
Re: Error con bucle while php
Antes que nada compañero, te recomiendo urgentemente migrar tu código a MySQLi o PDO y usar sentencias preparadas, tu código no sólo es muy inseguro (lee acerca de injecciones SQL) sino que además es considerado mala práctica bajo los estándares actuales combinar lógica (PHP) con diseño (HTML), lee acerca del modelo MVC.
Dejando a un lado lo anterior, no obtienes el primer resultado porque ya has obtenido los resultados previamente:
La función
Elimina la línea que tienes después de
Te dejo unos enlaces:
PDO: https://php.net/manual/es/book.pdo.php
MySQLi: https://php.net/manual/es/book.mysqli.php
Smarty: http://www.smarty.net/
Dejando a un lado lo anterior, no obtienes el primer resultado porque ya has obtenido los resultados previamente:
Código: Seleccionar todo
$registros = mysql_query("SELECT * FROM historial_rutina where codigo2= '$codigo2' ");
$fila = mysql_fetch_array($registros);
...
while ($fila=mysql_fetch_array ($registros))
mysql_fetch_array()
cambia el puntero interno, es decir que la primera vez que llamaste esta función obtuviste el primer valor, pero no lo imprimiste, luego en el búcle while
comienzas desde el segundo registro.Elimina la línea que tienes después de
registros = mysql_query(...)
ya que no la estas usando y es la que te esta creando conflicto.Te dejo unos enlaces:
PDO: https://php.net/manual/es/book.pdo.php
MySQLi: https://php.net/manual/es/book.mysqli.php
Smarty: http://www.smarty.net/
Algunas de mis extensiones:
Imgur |
SEO Metadata |
Markdown |
Simple Spoiler BBCode |
hCaptcha
Checa todas mi extensiones aprobadas
Usuario de Arch Linux