Foros del Web » Programando para Internet » PHP »

Actualización en MySQL con PHP

Estas en el tema de Actualización en MySQL con PHP en el foro de PHP en Foros del Web. Hola, Les explico un poco lo que quiero hacer. Tengo una tabla con los datos personales de un usuario, y quiero que este actualice los ...
  #1 (permalink)  
Antiguo 10/05/2011, 14:21
 
Fecha de Ingreso: mayo-2010
Mensajes: 42
Antigüedad: 14 años
Puntos: 0
Exclamación Actualización en MySQL con PHP

Hola,

Les explico un poco lo que quiero hacer. Tengo una tabla con los datos personales de un usuario, y quiero que este actualice los datos que sean necesarios.

Quiero que pueda actualizar a la vez su direccion y su nombre, o su telefono y su apellido o todo junto si es necesario.

De la forma que yo lo estaba intentando hacer funciona, pero lo que sucede es que existen muchisimas posibilidades distintas, por lo que me podrian salir unas cuantas lineas de codigo.

Estoy seguro de que hoy en dia esto que quiero se puede hacer de alguna otra forma ahorrandome unas cuantas lineas. Espero me puedan ayudar.

Aqui les dejo el codigo PHP:
Código PHP:
<?php
        $campo1 
$_POST['campo1'];                 $valor1 $_POST['valor1'];
        
$campo2 $_POST['campo2'];                 $valor2 $_POST['valor2'];
        
$campo3 $_POST['campo3'];                 $valor3 $_POST['valor3'];
        
$campo4 $_POST['campo4'];                 $valor4 $_POST['valor4'];
        
$campo5 $_POST['campo5'];                 $valor5 $_POST['valor5'];    
        
$campo6 $_POST['campo6'];                 $valor6 $_POST['valor6'];
        
$campo7 $_POST['campo7'];                 $valor7 $_POST['valor7'];
        
$campo8 $_POST['campo8'];                 $valor8 $_POST['valor8'];
        
$campo9 $_POST['campo9'];                 $valor9 $_POST['valor9'];
        
$campo10 $_POST['campo10'];               $valor10 $_POST['valor10'];
           
    
        if (
$campo1!="" && isset($valor1) && !empty($valor1) && $campo2!="" && isset($valor2) && !empty($valor2)) {
            
/*Podemos proceder a la conexion con la base de datos*/
            
$conexion mysql_connect('localhost','root','');
            
mysql_select_db('instituto',$conexion);
    
            
/*Insertamos datos*/
            
mysql_query("UPDATE alumnos SET nombre='$valor2' WHERE dni='$valor1'",$conexion);
    
            
/*Comprobamos si hubo algun error en la insercion*/
            
$my_error mysql_error($conexion);
            echo 
$my_error;
            if (!empty(
$my_error)) {
                echo 
"<script language=Javascript>alert('Hubo un error, vuelva a intentarlo');";
                echo 
"location.href='../profesor.htm';";
                echo 
"</script>"
            }
            else {
                echo 
"<script language=Javascript>alert('La actualizacion fue correcta');";
                echo 
"location.href='../profesor.htm';";
                echo 
"</script>"
            }
        }
    else {
        echo 
"Tienes que rellenar todos los campos";
    }
?>
Y aqui les dejo el codigo HTML:

Código HTML:
<form action="php/actualizar_alumno.php" method="post" name="form1">
		<fieldset>
			<legend>Actualizar Alumno</legend>
			<table align="center" class="actualiza" border="1">
                <tr>
                    <td>
                        <select name="campo1">
                            <option value="dni">DNI</option>
                        </select>
                    </td>
                    <td>
                        <select name="campo2">
                            <option value="">No Seleccion</option>
                            <option value="nombre">Nombre</option>
                        </select>
                    </td>
                    <td>
                        <select name="campo3">
                            <option value="">No Seleccion</option>
                            <option value="apellido1">Primer Apellido</option>
                        </select>
                    </td>
                    <td>
                        <select name="campo4">
                            <option value="">No Seleccion</option>
                            <option value="apellido2">Segundo Apellido</option>
                        </select>
                    </td>
                </tr>
                <tr>
                    <td><input type="text" name="valor1" maxlength="9" size="10" /></td>
                    <td><input type="text" name="valor2" maxlength="50" size="10" /></td>
                    <td><input type="text" name="valor3" maxlength="50" size="10" /></td>
                    <td><input type="text" name="valor4" maxlength="50" size="10" /></td>
                </tr>
                <tr>
                <td>
                        <select name="campo5">
                            <option value="">No Seleccion</option>
                            <option value="domicilio">Domicilio</option>
                        </select>
                    </td>
                    <td>
                        <select name="campo6">
                            <option value="">No Seleccion</option>
                            <option value="telefono">Telefono</option>
                        </select>
                    </td>
                    <td>
                        <select name="campo7">
                            <option value="">No Seleccion</option>
                            <option value="fecha_nac">Fecha_Nac(aaaa-mm-dd)</option>
                        </select>
                    </td>
                    <td>
                        <select name="campo8">
                            <option value="">No Seleccion</option>
                            <option value="sexo">Sexo(h &oacute; m)</option>
                        </select>
                    </td>
                </tr>
                <tr>
                    <td><input type="text" name="valor5" maxlength="50" size="10" /></td>
                    <td><input type="text" name="valor6" maxlength="50" size="10" /></td>
                    <td><input type="text" name="valor7" maxlength="50" size="10" /></td>
                    <td><input type="text" name="valor8" maxlength="50" size="10" /></td>
                </tr>
                <tr>
                    <td>
                        <select name="campo9">
                            <option value="">No Seleccion</option>
                            <option value="nombre_padre">Padre</option>
                        </select>
                    </td>
                    <td>
                        <select name="campo10">
                            <option value="">No Seleccion</option>
                            <option value="nombre_mama">Madre</option>
                        </select>
                    </td>
                </tr>
                <tr>
                    <td><input type="text" name="valor9" maxlength="50" size="10" /></td>
                    <td><input type="text" name="valor10" maxlength="50" size="10" /></td>
                </tr>
                <tr>
                <td colspan="2" align="right"><input type="submit" value="Actualizar" /></td>
                <td colspan="2" align="left"><input type="reset" value="Reiniciar" /></td>
                </tr>
            </table>
        </fieldset>
		</form> 
Saludos, gracias de antemano.
  #2 (permalink)  
Antiguo 10/05/2011, 14:35
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años
Puntos: 528
Respuesta: Actualización en MySQL con PHP

Yo lo haría así:
Buscar los datos del usuario en la BD, obtener sus datos y aL presentar el formulario de captura de datos, colocar TODOS los campos que se puedan modificar, colocando en dichos campos por defecto su valor que tengan en la base de datos.

Luego, simplemente actualizar el registro con todos los campos, sin verificar cuáles hayan cambiado, a menos que quieras una verificación para evitar campos vacíos.

Ejemplo:
Código PHP:
Ver original
  1. <?php
  2. if(mysql_num_rows($datos=mysql_query("select nombre,apellido,telefono, etc from alumnos where id='$_POST[id]'"))){
  3.    $datos=mysql_fetch_assoc($datos);
  4. echo "
  5. <form name=\"miform"\ >
  6.     <label>Nombre</label><input type=\"text\" name=\"nombre\" value=\"$datos[nombre]\">
  7.    <label>Apellido</label><input type=\"text\" name=\"apellido\" value=\"$datos[apellido]\">
  8.    <label>Telefono</label><input type=\"text\" name=\"telefono\" value=\"$datos[telefono]\">
  9.    <label>Etc</label><input type=\"text\" name=\"etc\" value=\"$datos[etc]\">
  10. </form>
  11. ";
  12. }else{
  13.    echo "No se encontro el registro No. $_POST[id]";
  14. }
  15. ?>
  #3 (permalink)  
Antiguo 10/05/2011, 14:43
 
Fecha de Ingreso: mayo-2010
Mensajes: 42
Antigüedad: 14 años
Puntos: 0
Respuesta: Actualización en MySQL con PHP

Lo probare, la verdad es que esa opcion la habia pensado pero crei que podria dar algun tipo de error, espero que no sea asi.

Y sino es mucho preguntar, ¿como se verificarian los datos modificados?

Saludos, muchas gracias.

Cita:
Iniciado por ocp001a Ver Mensaje
Yo lo haría así:
Buscar los datos del usuario en la BD, obtener sus datos y aL presentar el formulario de captura de datos, colocar TODOS los campos que se puedan modificar, colocando en dichos campos por defecto su valor que tengan en la base de datos.

Luego, simplemente actualizar el registro con todos los campos, sin verificar cuáles hayan cambiado, a menos que quieras una verificación para evitar campos vacíos.

Ejemplo:
Código PHP:
Ver original
  1. <?php
  2. if(mysql_num_rows($datos=mysql_query("select nombre,apellido,telefono, etc from alumnos where id='$_POST[id]'"))){
  3.    $datos=mysql_fetch_assoc($datos);
  4. echo "
  5. <form name=\"miform"\ >
  6.     <label>Nombre</label><input type=\"text\" name=\"nombre\" value=\"$datos[nombre]\">
  7.    <label>Apellido</label><input type=\"text\" name=\"apellido\" value=\"$datos[apellido]\">
  8.    <label>Telefono</label><input type=\"text\" name=\"telefono\" value=\"$datos[telefono]\">
  9.    <label>Etc</label><input type=\"text\" name=\"etc\" value=\"$datos[etc]\">
  10. </form>
  11. ";
  12. }else{
  13.    echo "No se encontro el registro No. $_POST[id]";
  14. }
  15. ?>
  #4 (permalink)  
Antiguo 10/05/2011, 14:54
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años
Puntos: 528
Respuesta: Actualización en MySQL con PHP

Dependerá mucho del tipo de verificación que necesites.
Si lo que quieres es que no queden campos en blanco, por ejemplo, podrías hacer algo así:
if($_POST["nombre"]=="")
die("Debe indicar un nombre");

Esto con php, en el lado del servidor.


O bien, del lado del cliente, con javascript, antes del envío del formulario llamas a la función que verifique:
Código Javascript:
Ver original
  1. function verifica(){
  2.     if(document.getElemetById('nombre').value==''){
  3.         alert('No puede dejar el nombre vacio');
  4.         document.getElemetById('nombre').focus();
  5.         retrun false;
  6.     }
  7. }
  #5 (permalink)  
Antiguo 10/05/2011, 15:43
 
Fecha de Ingreso: mayo-2010
Mensajes: 42
Antigüedad: 14 años
Puntos: 0
Respuesta: Actualización en MySQL con PHP

Vale, vale, creia que te referias a otra cosa.

Muchas gracias otra vez.

Saludos.

Cita:
Iniciado por ocp001a Ver Mensaje
Dependerá mucho del tipo de verificación que necesites.
Si lo que quieres es que no queden campos en blanco, por ejemplo, podrías hacer algo así:
if($_POST["nombre"]=="")
die("Debe indicar un nombre");

Esto con php, en el lado del servidor.


O bien, del lado del cliente, con javascript, antes del envío del formulario llamas a la función que verifique:
Código Javascript:
Ver original
  1. function verifica(){
  2.     if(document.getElemetById('nombre').value==''){
  3.         alert('No puede dejar el nombre vacio');
  4.         document.getElemetById('nombre').focus();
  5.         retrun false;
  6.     }
  7. }

Etiquetas: mysql
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 20:22.