Ver Mensaje Individual
  #10 (permalink)  
Antiguo 28/03/2011, 03:08
fontanares
 
Fecha de Ingreso: septiembre-2008
Ubicación: Manises,Valencia
Mensajes: 114
Antigüedad: 15 años, 7 meses
Puntos: 13
Respuesta: Modificar registro desde php

Aquí lo tienes:
<?php
//No he escrito el código HTML correctamente para ahorrar tiempo, sólo lo necesario
//Las dos lineas siguientes son para usar una función que tengo en un script para conectar y seleccionar la base de datos
include("funciones.php");
conexion();
//Le doy un valor a $cf_user_id para que muestre un resultado
$cf_user_id = 1;
//Aquí escribimos la cabecera de la tabla que mostrará los datos (he ordenado los datos según mi criterio, ponlos cómo te guste)
print ("<table width=\"80%\" border=1>\n");
print ("<tr><td>NOMBRE</td><td>APELLIDO</td><td>MARCA</td><td>MODELO</td><td>SERIAL</td><td>ACTUALIZAR</td></tr>\n");

//Creo una variable para añadir un índice a los formularios que vamos a crear
//por si tenemos que referirnos a alguno de ellos con javascript (por ejemplo)
$cont = 1;

//En este punto hemos ya conocemos el valor de $cf_user_id
$argumento_usuario_por_ID = "SELECT nombre, apellido, marca, modelo, serial, cf_user_id FROM jos_chronoforms_registro
WHERE cf_user_id=" . $cf_user_id ;
$respuesta_usuario_por_ID = mysql_query($argumento_usuario_por_ID) or die ("No he podido..." . $argumento_usuario_por_ID);
while($datos_usuario_por_ID = mysql_fetch_array($respuesta_usuario_por_ID))
{
print ("<form name=\"actualizo\"" . $c . " action=\"actualizo.php\" method=\"post\" target=\"_blank\">\n");
print ("<tr><input type=\"hidden\" name=\"cf_user_ID\" value=\"" . $cf_user_id ."\">\n");
print ("<td><input type=\"text\" name=\"nombre\" value=\"" . $datos_usuario_por_ID[nombre] ."\"></td>\n");
print ("<td><input type=\"text\" name=\"apellido\" value=\"" . $datos_usuario_por_ID[apellido] ."\"></td>\n");
print ("<td><input type=\"text\" name=\"marca\" value=\"" . $datos_usuario_por_ID[marca] ."\"></td>\n");
print ("<td><input type=\"text\" name=\"modelo\" value=\"" . $datos_usuario_por_ID[modelo] ."\"></td>\n");
print ("<td><input type=\"text\" name=\"serial\" value=\"" . $datos_usuario_por_ID[serial] ."\"></td>\n");
print ("<td><input type=\"submit\" name=\"actualizo\" value=\"ACTUALIZA\"></td></tr>\n");
print ("</form>\n");
}

print ("</table>\n");

?>
Te he puesto el valor de cf_user_id como oculto para poder usar ese dato como referencia para cambiar el registro en la bd (supongo que es tu primary key) ya que si se cambia no podremos actualizar el registro.
Si es un dato que quieras cambiar también deberás crear otro campo en la tabla y usar ese como referencia. Supongo que me entiendes

En la página que he puesto como objetivo del formulario "modifico.php" (tú puedes llamarla como quieras, por supuesto) llega los valores del formulario.
Los extraes, por ejemplo así:
$cf_user_id = $_POST[cf_user_ID];
$nombre = $_POST[nombre];
etc....

Supongo que usas una versión actual de php, pero si $_POST no te funciona usa $HTTP_POST_VARS[]

Entonces desarrollas un argumento tipo:
$argumento = "update jos_chronoforms_registro set nombre =\"" . $nombre . "\",apellido=\"" . $apellido........where cf_user_id = .....

Así introduces todos los datos que te han llegado del formulario. El que hayas modificado se cambiará y el que no hayas modificado quedará igual.

Espero que te sirva esto, siento lo del primer código, metí la pata por no poder probarlo.

Un saludo.