Foros del Web » Programando para Internet » PHP »

Formularios y Php+MySQL

Estas en el tema de Formularios y Php+MySQL en el foro de PHP en Foros del Web. Hola buenas, llevo horas buscando en foros y tratando de encontrar una solución a mi problema y nada!! no hay manera. A ver si alguien ...
  #1 (permalink)  
Antiguo 28/02/2012, 01:54
 
Fecha de Ingreso: septiembre-2011
Ubicación: Madrid
Mensajes: 25
Antigüedad: 12 años, 6 meses
Puntos: 1
Pregunta Formularios y Php+MySQL

Hola buenas, llevo horas buscando en foros y tratando de encontrar una solución a mi problema y nada!! no hay manera. A ver si alguien me puede ayudar.

Tengo una base de datos MySQL con una tabla y sus correspondientes campos y datos. Lo que quiero conseguir es mostrar cada uno de esos datos (De la tabla de la base de datos) en cajas de texto o campos de texto del tipo input type="text"

He probado de todo y nada :( Lo que hago es esto:

<?php
//conecto con la base de datos
$conexion = mysql_connect("localhost", "nombreBD", "Contraseña") or die (mysql_error());
$db = mysql_select_db("nombreBD", $conexion) or die (mysql_error());
$query = "SELECT * FROM nombreTABLA";
$result = mysql_query($query);
?>

el método del formulario es get ( method="get" )

En el input hago esto:

<input name="name" type="text" id="name" value="<? mysql_result($result, "Nombre");?> " readonly="readonly" />

("Nombre" es uno de los datos de la tabla que quiero que se muestre en la caja de texto)

Os digo que en el value ya he puesto tantas cosas que no me extraña que haya puesto barbaridades!!

Lo que quiero hacer básicamente es que se muestren los datos en las cajas de texto para poder modificarlos y volver a guardarlos con un botón.

Muchas gracias de ante mano, Saludos!!
  #2 (permalink)  
Antiguo 28/02/2012, 02:11
Avatar de rigobcastro  
Fecha de Ingreso: febrero-2012
Ubicación: Lejanías
Mensajes: 69
Antigüedad: 12 años, 1 mes
Puntos: 21
Respuesta: Formularios y Php+MySQL

Ya tienes todo el procedimiento para obtener el resultado, lo ejecutas hasta "mysql_query" pero no has ejecutado la función que te convertirá los datos en una matriz legible por PHP. Eso se puede hacer con mysq_fetch_assoc que te retorna un array associativo o mysql_fetch_row que te retorna un array enumerada.

Usa este código y usa el método mysq_fetch_assoc para convertir el resultado en un array asociativo, luego de ello usamos el bucle foreach que recorre el array y lo trabaja enlazando la llave y el valor como variables usables dentro del bucle.

Código PHP:
Ver original
  1. $conexion = mysql_connect("localhost", "nombreBD", "Contraseña") or die (mysql_error());
  2. $db = mysql_select_db("nombreBD", $conexion) or die (mysql_error());
  3. $query = "SELECT * FROM nombreTABLA";
  4. $result = mysql_query($query);
  5.  
  6. $rows = mysql_fetch_assoc($result);
  7.  
  8. foreach($rows as $campo => $valor){
  9.     echo '<input type="text" name="'.$campo.'" value="'.$valor.'" />';
  10. }
  11.  

Después de ejecutada la consulta, se usa mysql_close(); para cerrarla.

Si tienes más dudas de como usar mysql en PHP. Usa el buscador del foro ya que acá hay demasiados temas , guias, tutoriales y demás que te servirán de ayuda.

Saludos!
  #3 (permalink)  
Antiguo 28/02/2012, 06:58
 
Fecha de Ingreso: septiembre-2011
Ubicación: Madrid
Mensajes: 25
Antigüedad: 12 años, 6 meses
Puntos: 1
Respuesta: Formularios y Php+MySQL

Hola, muchísimas gracias por esa respuesta tan rápida!! hice algo parecido pero tampoco me funcionó. Lo que no tengo muy claro es como cada input seleccionará el campo adecuado y lo cargará. Quiero decir, la tabla tiene varios campos como por ejemplo: Nombre, Apellidos, Teléfono. No me queda muy claro como mostrar cada campo en inputs distintos. Sé que primero debería probarlo antes que nada xDD pero mi servidor ahora mismo está caído!! ("" Malditos webhostings compartidos"") Tan pronto como lo pruebe posteo. Muchas gracias de todo corazón!!
  #4 (permalink)  
Antiguo 28/02/2012, 10:36
 
Fecha de Ingreso: septiembre-2011
Ubicación: Madrid
Mensajes: 25
Antigüedad: 12 años, 6 meses
Puntos: 1
Respuesta: Formularios y Php+MySQL

Bien lo he probado y no me sale absolutamente nada en la página! jajajaja lo he hecho así, tal cual está y no funciona. Como digo no sale absolutamente nada :)
  #5 (permalink)  
Antiguo 28/02/2012, 11:07
Avatar de genaro_belen  
Fecha de Ingreso: diciembre-2010
Ubicación: Santo Domingo, RD
Mensajes: 94
Antigüedad: 13 años, 4 meses
Puntos: 3
Respuesta: Formularios y Php+MySQL

@BleEDMaN creo que lo que tienes que hacer no es dificil... es algo basico...

lo primero es que se supone que el resultado que te arrojara debe ser un solo registro, no hay forma de que la consulta te traiga dos registros porque si no entonces esta forma se caeria y tendrias que utilizar otros metodos... pero puedes hacer que muestre solo uno, usando la funcion limit de mysql.

utiliza este codigo...

//conexion a la bd -- se supone que sabes el codigo...

<?php

$sql = "select * from tabla where id=$xvariable" // xvariable es un id que sera unico en la tabla
$rst = mysql_query($sql, $conn) // conexion es la variable de la conexion que usaste...
while($row = mysql_fetch_assoc($rst))
{
?>
<input type="text" name="nombre" value="<?php echo $row['nombre']; ?>" />

<?php

}

?>


eso es todo, dejame saber cualquier cosa....
  #6 (permalink)  
Antiguo 28/02/2012, 14:28
 
Fecha de Ingreso: septiembre-2011
Ubicación: Madrid
Mensajes: 25
Antigüedad: 12 años, 6 meses
Puntos: 1
Respuesta: Formularios y Php+MySQL

Es lo que he hecho jajaa pero nada, no me sale déjame volver a intentarlo y os digo algo. Muchísimas gracias :) desde que lo pruebe vuelvo a postear! Saludos
  #7 (permalink)  
Antiguo 28/02/2012, 16:31
 
Fecha de Ingreso: septiembre-2011
Ubicación: Madrid
Mensajes: 25
Antigüedad: 12 años, 6 meses
Puntos: 1
Respuesta: Formularios y Php+MySQL

Ahora sí, me faltaban las malditas ; del final jajaja todo este tiempo y por eso!! ARFFFF!! Muchas gracias a todos.

Etiquetas: formulario, php+bd+mysql, bases-de-datos
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 01:02.