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

PHP, HTML, CSS, JS, jQuery, etc.
Firemanve
Observador/a
Mensajes: 1
Registrado: 08 Jul 2017, 04:07
Género:

Error con bucle while php

#1

Mensaje por Firemanve »

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.



Avatar de Usuario
AbaddonOrmuz
Moderador
Mensajes: 1085
Registrado: 14 Ene 2017, 22:18
Género:

Re: Error con bucle while php

#2

Mensaje por AbaddonOrmuz »

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:

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))
La función 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:
Imagen Imgur | :chart_with_upwards_trend: SEO Metadata | Imagen Markdown | :lock: Auto-lock Topics | :mermaid: Mermaid Diagrams
:trophy: Checa todas mi extensiones aprobadas :trophy:

:penguin: Usuario de Arch Linux :penguin:



Volver a “🆘 Recursos Webmaster”