Foros del Web » Programando para Internet » PHP »

Modificar datos de tabla desde un formulario

Estas en el tema de Modificar datos de tabla desde un formulario en el foro de PHP en Foros del Web. TEngo una duda, ¿es posible que pueda modificar datos de una tabla ya existentes en una base de datos desde un formulario? Es decir, Tengo ...
  #1 (permalink)  
Antiguo 05/09/2007, 10:14
 
Fecha de Ingreso: febrero-2007
Ubicación: México
Mensajes: 44
Antigüedad: 17 años, 2 meses
Puntos: 0
Mensaje Modificar datos de tabla desde un formulario

TEngo una duda, ¿es posible que pueda modificar datos de una tabla ya existentes en una base de datos desde un formulario?

Es decir, Tengo una tabla con los datos de los trabajadores de una empresa, pero deseo modificar el nombre del departamento en donde labora porque lo ascendieron.
Previamente para guardar los datos del trabajador hice un formulario simple en html y luego otro archivo en php donde hago mis querys para guardar sus datos en la Base de datos obtenidos del formulario con un post.

Ahora necesito modificar sus datos a través de ese formulario, pero con la diferencia de que al hacer una consulta de busqueda de ese trabajador me traiga sus datos en dicho formulario para que cuando haga la modificación no tenga que volver a escribir otra vez todos sus datos (fecha nacimiento, profesión, grado de estudios, etc, etc). Y de igual manera si es otro cambio de otro campo, pues que de todos modos me imprima en pantalla todos su datos y cambie el dato que yo quiera. no sé si me expliqué bien. Aunque sé que al final la consulta sería un update y no un insert.

En resumen: ¿Es posible que imprima en pantalla los datos de una tabla en forma de formulario y que despues se utilice para actualizar los datos?

Porque lo he intentado y he buscado alguna ayuda en internet y no he encontrado nada parecido.
Muchas gracias de antemano.
  #2 (permalink)  
Antiguo 05/09/2007, 10:21
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 9 meses
Puntos: 2114
Re: Modificar datos de tabla desde un formulario

Puede hacerse si.

Primero tendrías que traerte los datos, supongo que eso lo sabes hacer, si no te lo indico también.

Una vez que los tengas, los metes en el formulario de esta forma:
Código PHP:
// Digamos que el dato del departamento está en $consulta['departamente']
<input type="text" name="departamento" value="<?=$consulta['departamento']?>" />
// Para saber a que trabajador estás editando, necesitas el ID o el dato con el que trabajes, puede meterse en un input de tipo oculto.
<input type="hidden" name="id" value="<?=$consulta['id_trabajador']?>" />
Cuando envíes el formulario, solo tendrías que usar UPDATE en tu consulta SQL, algo así:
Código PHP:
mysql_query("
UPDATE tabla_trabajadores
SET departamento = '"
.$_POST['departamento']."'
WHERE id_trabajador = '"
.$_POST['id']); 
  #3 (permalink)  
Antiguo 05/09/2007, 10:37
 
Fecha de Ingreso: marzo-2007
Ubicación: En El salvador
Mensajes: 78
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: Modificar datos de tabla desde un formulario

Bueno, te voy a decir la lógica de como debe de hacerse:

Para empezar, si no lo tienes (que deberias de tenerlo) es alguna página en donde yo pueda decir, digamos "quiero modificar el empleado X" ya sea basandome en un ID o en un nombre, etc. Digamos que tienes un script PHP que lo que hace es conectarse a la base de datos para consultar los ID's de todos los empleados y los coloca dentro de un listbox, de tal manera que puedas desplegar el listbox y seleccionar digamos, el número 35. Luego de seleccionarlo, le das a algun botón (dentro de esta misma página) para modificar los datos del empleado cuyo ID seleccionastes, entonces ahi debes de mandar (sea por medio de POST o GET) el ID seleccionado del listbox, al formulario de modificación de datos de empleados.

Para hacer el formulario de modificación toma el formulario que utilizastes para ingresar los datos del empleado, ya que sería el mismo. Luego, lo primero que haces en esta página PHP es obtener el ID que se mandó de la página anterior del empleado seleccionado, lo guardas en una variable, y luego debes de abrir una conexión a la base de datos, a la tabla de los empleados, en donde la lógica de la consulta será mas o menos así:

"SELECT * FROM tablaEmpleado WHERE idEmpleado = " . $variableID . ";"

en donde $variableID sería la variable que contiene el numero de ID que fué mandado de la página anterior, luego ejecutas la consulta y obviamente te va a traer los datos del empleado que seleccionastes anteriormente basandote en su ID, entonces obtendrás todos los datos del empleado que deseas modificar, pero la pregunta es ¿Como voy a hacer para ponerlos?

Aquí lo que debes hacer es para empezar, guardar todos los datos en una variable usando ya sea la función mysql_fetch_array() ó mysql_fetch_object() segun tu prefieras, entonces luego debes poner el código HTML del formulario, pero en cada campo del formulario (es decir en cada textbox) irás colocando los valores que acabas de obtener de la consulta a la DB. Te voy a poner un ejemplo, digamos que uno de los datos es el nombre, entonces ¿como se hace para insertar ese valor en un textbox? Facil, para empezar cierras cualquier código PHP que tengas con ?> luego pones el código HTML para crear el textbox (antes de esto poner el código para abrir el formulario) y en el caso de un textbox utilizas la propiedad value que lo que contiene es el texto escrito en el (textbox) de la siguiente manera:

Código HTML:
<input type = "text" name = "nombreEmpleado" value = "<? echo $varConDatos["nombre"]; ?>" /> 
¿Qué ocurre ahi exactamente?
Lo que pasa es que creas el código HTML para el textbox, pero en la propiedad value del textbox lo que hago es "incrustar" el dato del nombre del empleado mediante PHP, y de ese modo haces con otros datos, solo que la complejidad aumenta si digamos, estamos hablando de poner fechas, o alguna lista de cosas, etc. pero la lógica es la misma, colocar el código HTML para los elementos del form y dentro de estos incrustar el código PHP para introducir los valores que deseamos modificar.

Luego de esto simplemente al modificar datos en el formulario, que nos lleve a otro script en donde se haga la modificación, para ello debes de mandar todos los elementos del formulario (se hace automaticamente) y tambien debes de mandar de nuevo el ID del empleado, porque, al llegar al otro script, en el se va a hacer una conexión, se van a obtener todos los valores mandados del formulario de modificación incluyendo el ID del empleado y se formulará una consulta como la siguiente:

"UPDATE tablaEmpleado SET nombre = '$nombre', apellido = '$apellido', .... WHERE idEmpleado = $id;"

Luego simplemente ejecutas esa consulta y listo!!!!! Si no tienes ningun error de sintaxis de código PHP, si mandas y capturas todos los datos enviados y no tienes errores en las consultas SQL, te saldrá bien.
  #4 (permalink)  
Antiguo 05/09/2007, 11:26
 
Fecha de Ingreso: febrero-2007
Ubicación: México
Mensajes: 44
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Modificar datos de tabla desde un formulario

GRacias Muchachos!

Exactamente todo lo que me describes, Oskar, es correcto, así lo he estado manejando. Antes de entrar de lleno con el formulario, cree un archivo php donde solicito que me muestre todos los datos del trabajador, y luego un enlace para que el administrador entre si desea modificar el dato de algun trabajador, y posteriomente ahi se solicita introducir el id del trabajador y finalmente en otro archivo es en donde necesito que me aparezca el formulario con todos los datos de ese id del trabajador.

Y ke kreen!, por el tip tambien se los agradezco a ambos, porque ahora ya me imprime en el formulario el nombre del trabajador y el departamento donde trabaja ; aunque todavía no llego a la parte donde actualizo los datos porque me atoré en un problemilla otra vez . Les cuento:

En el formulario también especifico el sexo del trabajador y lo puse como botón de opción. En ese caso ¿Cómo le hago para que quede la opción habilitada si se tratara de un empleado de sexo femenino? o ¿tendré que hacer otro formulario donde ahora todos los campos sean tipo texto?

GRacias amiguitos! Espero nuevamente su ayuda!
  #5 (permalink)  
Antiguo 05/09/2007, 11:38
 
Fecha de Ingreso: febrero-2007
Ubicación: México
Mensajes: 44
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Modificar datos de tabla desde un formulario

Nota: Además de utilizar botones de opción también utilicé un menu de lista .
  #6 (permalink)  
Antiguo 05/09/2007, 16:14
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 9 meses
Puntos: 2114
Re: Modificar datos de tabla desde un formulario

Para el campo del sexo, puedes hacer esto:
Código PHP:
<input type="checkbox" name="sexo" value="machito"
<? if ( $datos['sexo'] == "machito" ) echo "checked"?>
/>
  #7 (permalink)  
Antiguo 08/09/2007, 12:17
 
Fecha de Ingreso: julio-2007
Ubicación: argentina
Mensajes: 127
Antigüedad: 16 años, 9 meses
Puntos: 0
Re: Modificar datos de tabla desde un formulario

Hola

En el caso mio.

Yo tengo la base llamada "registro" y la tabla llamada "usuarios" donde tengo
ID, nombre, nick, email, pass y demas. Quiero traer los datos de un solo usuario por vez y lo haria a traves del ID que es lo unico distinto a todo otro dato.

Me dieron un script: SELECT * FROM usuarios WHERE idUsuario=1

Donde "usuarios" es el nombre de la tabla, pero no se que significa en "idUsuario"
la palabra Usuario ya que si es la tabla es en plural. El numero 1 seguro es el numero de ID del usuario.
No interesa mucho esto que de alguna manera lo voy a sacar.

El tema principal es que se muy poco de las lineas de codigo, que otra cosa va, ni donde o acompañado de que otros codigos para hacer la consulta y lo unico que se es que me conecto perfectamente.

Pero el codigo que me dieron no se como va ni donde para traer los datos de un solo usuario a la vez y como le preguntastes al otro chico si sabia como traer ese dato y sino vos se lo explicarias, por ello te pregunto a ti.

Despues me rompere la cabeza para que al venir el dato aparezca directamente en un formulario y en tiempo real para que los usuarios puedan ver lo que escribieron y puedan modificar o borrar esos datos tambien en tiempo real y hay una parte tambien que has explicado de como recibir esos datos.

Te agradezco desde ya lo que puedas hacer por mi.

Abrazos

Ricardo
  #8 (permalink)  
Antiguo 08/09/2007, 15:11
 
Fecha de Ingreso: febrero-2007
Ubicación: México
Mensajes: 44
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Modificar datos de tabla desde un formulario

Hola Ricardo!

A lo mejor si nos muestras la parte del código donde no le entiendes te pueda explicar en qué consiste cada línea, pero te diré que yo soy principiante en esto del php y mysql, pero puedo hacer mi luchita para ayudarte.

Saludos!
  #9 (permalink)  
Antiguo 08/09/2007, 17:17
 
Fecha de Ingreso: julio-2007
Ubicación: argentina
Mensajes: 127
Antigüedad: 16 años, 9 meses
Puntos: 0
Re: Modificar datos de tabla desde un formulario

<?php
$host="localhost";
$user="ricardo";
$password="*******";
$link = mysql_connect ($host, $user, $password) or die ("
<center>No se puede conectar con la base de datos\n</center>\n");
?>
<div align="center">
<p>&nbsp;</p>
<p>&nbsp;</p>
<table width="176">
<tr>
<td width="29">nombre</td>
<td width="18">email</td>
<td width="20">nick</td>
<td width="24">id</td>

</tr>
<?php
$dbname="registro";
$tablename="usuarios";
$query="SELECT * FROM $tablename;";
$result=mysql_db_query ($dbname, $query, $link);
while ($row = mysql_fetch_array ($result))
{
print ("<TR>");
print ("<TD>$row[nombre]</TD>\n");
print ("<TD>$row[email]</TD>\n");
print ("<TD>$row[nick]</TD>\n");
print ("<TD>$row[fecha]</TD>\n");
print ("<TD>$row[id]</TD>\n");

print ("</TR>");
}
mysql_free_result($result);
?>
</table>
</div>
---------------------------------------------------------------------------------------------------

Esto es lo que yo tengo para ver los datos de todos los campos y son de los usuarios que se registran en mi web.
Pero lo que necesito ahora es ver los datos ingresado de un solo usuario a la vez. Como la tabla tambien tendra su perfil, lo que busca la persona y fotos eso lo tengo que mostrar en la pagina. Por ahora lo hare manualmente pero lo ideal como en todas las paginas donde ingresas el perfil sale en tiempo real y el usuario puede modificar borrar o ingresar mas datos tambien en tiempo real....pero eso es otro tema. Lo que me conformaria es con que yo haga la consulta y se me envie solo los datos de un registrado solo y yo lo subo manualmente por ahora.
Estuve viendo algunas cosas y se que se puede hacer, pero no entiendo como se colocan los codigos siempre hablando de PHP que es lo que mejor manejo.

Tengo el codigo para hacer esa consulta solo me falta agregar el codigo para que salga la consulta en pantalla.

Hasta el momento de haber realizado la consulta que vos me estas respondiendo no sabia como se hacia esa consulta. Ahora eso esta, solo falta agregar la linea que hace que vea la informacion en pantalla.


El codigo del que hablo es

<?php

// Query que tomaria la información solo del usuario número 5 en la tabla usuarios
$query = mysql_query("SELECT * FROM usuarios WHERE id='5'",$con);

?>

Cuando lanzo esto se que hace la consulta perfecta pero falta el Querry (no se si se llama asi) para mostramelo en pantalla.

Te agradeceria cualquier informacion
Abrazos y gracias por tu interes en ayudarme


Ricardo
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.
Tema Cerrado

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 09:58.