> Faqs > Insertar dato consulta SQL en campo input text, usando PHP

Insertar dato consulta SQL en campo input text, usando PHP

Hola, a ver si alguien me puede echar una mano.

Estoy empezando en esto del PHP y estoy teniendo dificultades para que el resultado de una consulta sea enviado a un input tex.

Me explico. Tengo un pequeño formulario con un input text y un botón. Lo que pretendo es que al pulsar el botón "ATRAS" se realice la consulta pertinente y que me devuelva el valor obtenido al realizar la consulta, dentro del input text. Pongo el código de los dos archivos y a ver si alguien me ayuda. Gracias de antemano.

Este es el formulario HTML

<!-- Archivo HTML que crea el input text "NUMEROFABRICACION" y el botón "ATRAS" -->
<!-- Se envía una petición SQL a RetrocederRegistro.php para obtener la primera producción en la base de datos -->
<body>
  
    <form name="atras" action="Actions/RetrocederRegistro.php">
    	<label>FABRICACION:  </label>
        <input type="text" name="NUMEROFABRICACION" value="<?php echo $fabricacion; ?>"/>
    <!--	<input type="text" name="NUMEROFABRICACION" value="<"?" php echo $numero?>"/> -->
        <INPUT type="submit" name="ATRAS" value="ATRAS" />
    
    </form>
</body>

Este es el código PHP

/*Archivo RetrocederRegistro.php 
    Se encarga de conectar a la base de datos y realizar una consulta SQL
*/
<?php
include ("../Includes/miconexion.php");

$consulta = "SELECT MIN(NumeroFabricacion) FROM ferrico";
$resultado = mysqli_query($miconexion, $consulta) or die("No se puede ejecutar la consulta");
$columna = mysqli_fetch_array($resultado);
$fabricacion =  $columna[0];

mysqli_close($miconexion);
?>

Respuestas

Realmente no necesitas dos páginas para realizar este ejercicio, lo ideal sería tener una única página que a veces te muestra el formulario vacío y otra página que a veces te muestra el formulario con el valor que cargas de tu sentencia SQL.

Te pongo un esquema de funcionamiento de esta página.

<?php
// primero preguntamos si estamos recibiendo datos por post
if(!$_POST) {
    // entonces muestras el formulario HTML, ya que no has recibido datos por post
} else {
    // como has recibido datos por post, entonces realizas tu consulta SQL y obtienes el resultado 
    // además, como se tiene que mostrar de nuevo el formulario, pero con el input relleno, entonces lo muestras de nuevo
}
?>

Puedes ver en esta página un ejemplo sencillo de autollamada de páginas con PHP.

Lo suyo es que tengas el formulario en un include, de modo que no tengas que escribir el código del formulario en dos sitios distintos, para mejorar la mantenibilidad de tu códogo PHP.

En ese caso, entonces necesitas hacer una comprobación también en el input del formulario, para asegurarte si están o no las variables de la consulta, en cuyo caso y solo en ese caso, se rellene el campo input con el resultado de la consulta.

<input type="text" name="NUMEROFABRICACION" value="<?php echo isset($fabricacion) ? $fabricacion : '' ?>"/>

Ese código anterior pregunta primero si existe la variable $fabricación y solo en ese caso se mostrará en el value del input, en el otro caso se mostrará simplemente la cadena vacía, con lo que el input quedará vacío.

Alfonso
289 11 19 16