Foros del Web » Programando para Internet » PHP »

Cajas de texto rellenadas con valores de una consulta de MySQL

Estas en el tema de Cajas de texto rellenadas con valores de una consulta de MySQL en el foro de PHP en Foros del Web. Es un tema muy antiguo, parece que en 10 años nadie ha dado con la solución estable. Estoy acabando un trabajo de IAW pero me ...
  #1 (permalink)  
Antiguo 22/03/2015, 06:56
guadefocus
Invitado
 
Mensajes: n/a
Puntos:
Cajas de texto rellenadas con valores de una consulta de MySQL

Es un tema muy antiguo, parece que en 10 años nadie ha dado con la solución estable.


Estoy acabando un trabajo de IAW pero me falta completar una aplicación donde al entrar y seleccionar al usuario me rellenen automáticamente las cajas de texto del formulario con consultas de la BBDD.
Hay que declarar variables para leer la consulta, y dentro de la caja de texto, rellenar la etiqueta Value con la variable igual a esa consulta donde los valores de la tabla usuarios sean igual al nombre del usuario seleccionado en el desplegable, pero no me devuelve valores.

Actualiza tal y como viene el código pero no me rellena las cajas.
Los valores de la cuenta de phpmyadmin los he borrado pero pueden probar ustedes con otro servidor vuestro para ver como funciona.
Necesito que me rellene las cajas con los valores de la consulta del usuario seleccionado del desplegable.
Aquí el código fuente de la aplicación "actualizar1.php":

<HTML>
<HEAD>
<TITLE>Actualizar1.php</TITLE>
</HEAD>
<BODY>
<div align="center">
<h1>Actualizar cuenta del usuario</h1>
<br>
<?php
//Conexion con la base
mysql_connect("localhost","nombredelusuario","cont rasenadePHPmyADMIN");

//selección de la base de datos con la que vamos a trabajar
mysql_select_db("nombredelabasedatos");

echo '<FORM METHOD="POST" ACTION="actualizar2.php">Nombre<br>';

//Creamos la sentencia SQL y la ejecutamos
$sSQL="Select nombre From usuarios Order By nombre";
$result=mysql_query($sSQL);

echo '<select name="nombre">';
echo $_POST['nombre'];
//Generamos el menu desplegable
while ($row=mysql_fetch_array($result))
{echo '<option>'.$row["nombre"];}
?>
</select>
<br>

Aficiones
<INPUT TYPE="TEXT" NAME="aficiones" value="<?php uuuuu ?> "><br>
#donde uuuuuuuu hay que meter una variable con una consulta o lo que sea que muestre los valores del usuario seleccionado

Cocina
<INPUT TYPE="TEXT" NAME="cocina"><br>
Correo Email
<INPUT TYPE="TEXT" NAME="correo"><br>
Contrase&ntilde;a
<INPUT TYPE="password" NAME="contrasena"><br>
Ubicaci&oacute;n
<select name="comunidad" id="comunidad">
<option value="0">Selecciona tu ubicaci&oacute;n</option>
<option value="Andaluc&iacute;a">Andaluc&iacute;a</option>
<option value="Arag&oacute;n">Arag&oacute;n</option>
<option value="Principado de Asturias">Principado de Asturias</option>
<option value="Islas Baleares">Islas Baleares</option>
<option value="Pa&iacute;s Vasco">Pa&iacute;s Vasco</option>
<option value="Canarias">Canarias</option>
<option value="Cantabria">Cantabria</option>
<option value="Castilla-La Mancha">Castilla-La Mancha</option>
<option value="Castilla y Le&oacute;n">Castilla y Le&oacute;n</option>
<option value="Catalu&ntilde;a">Catalu&ntilde;a</option>
<option value="Extremadura">Extremadura</option>
<option value="Galicia">Galicia</option>
<option value="Comunidad de Madrid">Comunidad de Madrid</option>
<option value="Regi&oacute;n de Murcia">Regi&oacute;n de Murcia</option>
<option value="Comunidad Foral de Navarra">Comunidad Foral de Navarra</option>
<option value="La Rioja">La Rioja</option>
<option value="Comunidad Valenciana">Comunidad Valenciana</option>
<option value="Ceuta">Ceuta</option>
<option value="Melilla">Melilla</option>
</select>
<INPUT TYPE="SUBMIT" value="Actualizar">
</FORM>
</div>

</BODY>
</HTML>

después lo manda a otro fichero, "actualizar2.php" que ejecuta la actualización del usuario seleccionado en actualizar1.php:

<HTML>
<HEAD>
<TITLE>Actualizar2.php</TITLE>


</HEAD>
<BODY>
<?php
//Conexion con la base
mysql_connect("localhost","nombredelusuario","cont rasenadePHPmyADMIN");

//selección de la base de datos con la que vamos a trabajar
mysql_select_db("nombredelabasedatos");

//Creamos la sentencia SQL y la ejecutamos
$sSQL="Update usuarios Set aficiones='".$_POST['aficiones']."', cocina='".$_POST['cocina']."', correo='".$_POST['correo']."', contrasena='".$_POST['contrasena']."', comunidad='".$_POST['comunidad']."' Where nombre='".$_POST['nombre']."'";
mysql_query($sSQL);
?>

<h1><div align="center">Registro Actualizado</div></h1>
<div align="center"><a href="listupdate.php">Visualizar el contenido de la tabla de usuarios registrados</a></div>

</BODY>
</HTML>


-----------------------------------------------------------------
gracias de antemano.
  #2 (permalink)  
Antiguo 22/03/2015, 07:15
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Cajas de texto rellenadas con valores de una consulta de MySQL

¿Podrías tener la amabilidad de usar las etiquetas de Highlight que están disponibles para el código?
Mirar ese script chorizo como texto plano hace doler los ojos. Es ilegible.
Cita:
Los valores de la cuenta de phpmyadmin los he borrado pero pueden probar ustedes con otro servidor vuestro para ver como funciona.
¿O sea que tenemos que crear todo lo que se necesita para ejecutar esto, incluyendo crear una base, sólo para ser qué error estás cometiendo tu?
Perdón, pero ¿no te parece un pedido excesivo?
Creo que sería mas sencillo que debuguearas el código de modo que puedas asegurarte de al menos tres cosas:
1) Estás recibiendo realmente datos.
2) Los estás procesando correctamente.
3) La sintaxis de cada parte esté bien armada.

Posdata: Un editor con corrector sintáctico sería una buena idea.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 23/03/2015, 11:07
guadefocus
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Cajas de texto rellenadas con valores de una consulta de MySQL

Prueba a meter XAMMP en tu ordenador para trabajar el php en local.
Esta es la tabla, usa luego tu fichero de acceder a la BD.
Te creas una BD y le metes la tabla ejecutando el texto del script de php cuyo código meto a continuación, y luego tus parámetros de entrada a la BD con tu script mysqli.inc.php.

Creación de la tabla usuarios:

<hightlight>
<?php
/* incluimos los datos de conexión al servidor MySQL especificados en el fichero al que se refiere INCLUDE*/
include("mysqli.inc.php");

/* esta es la sentencia multiple MySQL */
$sentenciaTabla.="CREATE TABLE if not exists usuarios (
nombre varchar (50),
aficiones VARCHAR(200),
cocina VARCHAR(100),
correo VARCHAR(150) NOT NULL,
contrasena VARCHAR(50) NOT NULL,
comunidad VARCHAR(30) NOT NULL)
ENGINE=MyISAM;";

#APLICANDO VARIABLES ANTERIORES PARA CONECTARSE A LA BBDD Y ACABAR DE INTRODUCIR LAS TABLAS.

#conexion y selección de base de datos
$conexion=@mysqli_connect ($cfg_servidor,$cfg_usuario,$cfg_password,$cfg_bas ephp1) or die ("error de conexion");

# realiza la consulta ENTRANDO A LA BBDD MEDIANTE COMPROBACIÓN DE ERRORES,
# para verificar si las tablas se han introducido o no, por algún error de integridad referencial o duplicidad.
if(mysqli_multi_query($conexion, $sentenciaTabla)){

print "Tablas creadas con &eacute;xito";

}else{
print "<br>No ha podido realizarse la consulta. Ha habido un error<br>";
print "<i>Error:</i> ". mysqli_error($conexion)." <i>C&oacute;digo:</i> ".mysqli_errno($conexion);
exit();
}
mysqli_close($conexion);



?>
</hightlight>
  #4 (permalink)  
Antiguo 23/03/2015, 11:13
Avatar de NueveReinas  
Fecha de Ingreso: septiembre-2013
Ubicación: No tan Buenos Aires
Mensajes: 1.101
Antigüedad: 11 años, 3 meses
Puntos: 145
Respuesta: Cajas de texto rellenadas con valores de una consulta de MySQL

No, señor. Use:

Código PHP:
Ver original
  1. //Aquí tu código...
__________________
¿Te sirvió la respuesta? Deja un +1
  #5 (permalink)  
Antiguo 23/03/2015, 11:20
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Cajas de texto rellenadas con valores de una consulta de MySQL

Cita:
Prueba a meter XAMMP en tu ordenador para trabajar el php en local.
Esta es la tabla, usa luego tu fichero de acceder a la BD.
Te creas una BD y le metes la tabla ejecutando el texto del script de php cuyo código meto a continuación, y luego tus parámetros de entrada a la BD con tu script mysqli.inc.php.
1) Tengo PHP funcionando perfectamente, muchas gracias. Prueba de ello es que trabajo en proyectos de este tipo...

2) No tengo por qué replicar lo que tienes. Es tu proyecto, y eres tu el que está probando, y en todo caso nosotros te podemos sugerir planes de acción. Pero la tarea la vas a tener que hacer tu mismo.
En nuestro caso, lo que vamos a hacer es analizar tu código para verificar si está bien, y por allí ejemplificarte ciertos casos. Pero no replicar tu proyecto para hacerte la solución; esa es tu parte del esfuerzo.

3) Ten la amabilidad de usar los Highlight que dispone el área de edición. Ya te dije que leer código como texto plano hace doler la vista.

Insisto: Debuggea los datos pero etapas, para verificar si las cosas están funcionando correctamente.

Además de eso, veo que tienes malas prácticas de programación:
Código PHP:
$conexion=@mysqli_connect ($cfg_servidor,$cfg_usuario,$cfg_password,$cfg_bas ephp1
or die (
"error de conexion"); 
¿Por qué pones el "@"? ¿Tienes claro que eso oculta los mensajes de error que puedan estar regresando?
No pongas cosas en el código por que sí.

Tengo la impresión de que si usases los ejemplos del manual de referencia de PHP, probablemente obtendrías mejores resultados.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: mysql+consulta, mysql_fetch_array
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 05:35.