Pregunta:
Fecha: 25-07-2018 14:48:01
(En Español)
Tengo un grupo de campos que al editar con update de php, si se modifican pero hay dos campos que no los modifico que son facultad_egre y carrera_egre y lo borra.
Modifico cualquiera otro campo y me borra estos 2 (facultad_egre y carrera_egre) estos campos son de un select
Les agradezco que ayuden, estoy q no doy mas.
Les dejo los códigos.
Les agradezco cualquiera sugerencia para mejorar mi código Votos: 0 - Respuestas: 9 - Vistas: 15 Compartir en: Google Facebook Twitter LinkedIn Link
Problemas con UPDATE en PHP[Resuelta]
Muy buenas, les escribo para que ayuden con edición de datos php.Tengo un grupo de campos que al editar con update de php, si se modifican pero hay dos campos que no los modifico que son facultad_egre y carrera_egre y lo borra.
Modifico cualquiera otro campo y me borra estos 2 (facultad_egre y carrera_egre) estos campos son de un select
Les agradezco que ayuden, estoy q no doy mas.
Les dejo los códigos.
<!doctype html> <html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> <title>Modificar.</title> <style> body { background-color: #D5D8DC; } button { color: #900; font-weight: bold; font-size: 90%; text-transform: uppercase; } #container { display: flex; flex-direction: column; width: 110px; height: 120px; } .Imagen { flex-grow:1; height: 100%; } </style> </head> <body> <?php if (isset($_REQUEST['id_persona'])) { $id_persona = $_REQUEST['id_persona']; } else { $id_persona = ""; } $conexion=mysqli_connect("localhost","root","","egresado") or die("Problemas en la conexion"); mysqli_select_db($conexion,'egresado') or die("Problemas en la selección de la base de datos"); $registro=mysqli_query($conexion,"select pe.nombres, pe.apellido, pe.cedula, pe.fecha_nac, pe.telefono, pe.celular, pe.sexo, pe.correo, pe.year_egreso, pe.empresa_lab, pe.cargo, pe.direccion_emp, pe.foto, fa.facultad_egre,ca.carrera_egre FROM persona pe INNER JOIN facultades fa ON fa.id_facultad= pe.id_persona INNER JOIN carreras ca ON ca.id_carrera= fa.id_facultad where pe.id_persona= '$id_persona'")or die("Problemas en el select:".mysqli_error($conexion)); if ($reg=mysqli_fetch_array($registro)) { ?> <form method="POST" action="modificacion3.php" enctype="multipart/form-data"> <table align="center" cellspacing="1" cellpadding="1" border="0" width="900" height="600" bgcolor="White"> <tr> <td colspan="2" bgcolor="666666" align="center"><font color="White" SIZE="6"><strong>Datos a modificar</strong></font></td> </tr> <tr> <td width="40%" style="font-size:115%;"> <table align="center" cellspacing="6" cellpadding="8" border="0" width="790"> <tr> <td><div align="right" >Nombre:</div></td> <td><input type="text" name="nombres" size="30" style="font-size:90%;" value="<?php echo $reg['nombres']; ?>"></td> </tr> <input type="hidden" name="id_persona" value="<?php echo $_REQUEST['id_persona']; ?>"> <tr> <td><div align="right">Apellido:</div></td> <td><input type="text" name="apellido" size="30" style="font-size:90%;" value="<?php echo $reg['apellido']; ?>"></td> </tr> <tr> <td><div align="right">Cedula:</div></td> <td><input type="text" name="cedula" size="30" style="font-size:90%;" value="<?php echo $reg['cedula']; ?>"></td> </tr> <tr> <td><div align="right">Fecha de Nacimiento:</div></td> <td><input type="date" name="fecha_nac" size="30" style="font-size:90%;" value="<?php echo $reg['fecha_nac']; ?>"></td> </tr> <tr> <td><div align="right">Telefono:</div></td> <td><input type="text" name="telefono" size="30" style="font-size:90%;" value="<?php echo $reg['telefono']; ?>"></td> </tr> <tr> <td><div align="right">Celular:</div></td> <td><input type="text" name="celular" size="30" style="font-size:90%;" value="<?php echo $reg['celular']; ?>"></td> </tr> <tr> <td><div label for="sexo" align="right">Genero:</label></div></td> <td><div class="col-sm-10"> <label class="radio-inline"> <input type="radio" id="sexo" name="sexo" value="Hombre" <?php if($reg['sexo']=='Hombre') echo 'checked'; ?>> Hombre </label> <label class="radio-inline"> <input type="radio" id="sexo" name="sexo" value="Mujer" <?php if($reg['sexo']=='Mujer') echo 'checked'; ?>> Mujer </label> </div></td> </tr> <tr> <td><div align="right">Correo:</div></td> <td><input type="email" name="correo" size="50" style="font-size:90%;" value="<?php echo $reg['correo']; ?>"></td> </tr> <tr> <td><div align="right">Fecha de Egreso:</div></td> <td><input type="date" name="year_egreso" size="30" style="font-size:90%;" value="<?php echo $reg['year_egreso']; ?>"></td> </tr> <tr> <td><div align="right">Facultad:</div></td> <td><select id="lista_facultades" name="facultad_egre" style="font-size:90%;"></select></td> </tr> <tr> <td><div align="right">Carrera:</div></td> <td><select id="carreras" name="carrera_egre" style="font-size:90%;"></select></td> </tr> <tr> <td><div align="right">Empresa donde Labora:</div></td> <td><input type="text" name="empresa_lab" size="50" style="font-size:90%;" value="<?php echo $reg['empresa_lab']; ?>"></td> </tr> <tr> <td><div align="right">Cargo Loboral:</div></td> <td><input type="text" name="cargo" size="30" style="font-size:90%;" value="<?php echo $reg['cargo']; ?>"></td> </tr> <tr> <td><div align="right">Direccion de la Empresa:</div></td> <td><input type="text" name="direccion_emp" size="50" style="font-size:90%;" value="<?php echo $reg['direccion_emp']; ?>"></td> </tr> <tr> <td><div align="right">Foto:</div></td> <td><input type="file" name="foto" id="foto" size="10" style="font-size:90%;" ><div id="container"> <?php echo "<img class=\"Imagen\" src=\""."../fotos/".$reg['foto']."\"/>";?></td> </div></td> </tr> <td></td><td><div align="right"><button type="submit" value="Guardar">Guardar</button></div></td> </tr> <tr> <td></td><td><div align="right"><img src="../imagen/Regresar.png" style="cursor:pointer;" onclick="history.back()" height="40" width="105" /></div></td> </tr> </table> </td> </form><br><br> </tr> </table> <?php } mysqli_close($conexion); ?> <br><br> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"> </script> <script type="text/javascript" src="js/index.js"></script> </body> </html>
<?php $id_persona = $_POST['id_persona']; $sexo = isset($_POST['sexo']) ? $_POST['sexo'] : 0; if (isset($_POST['facultad_egre'])) { $facultad = $_POST['facultad_egre']; } else { $facultad= ""; } if (isset($_POST['carrera_egre'])) { $carrera = $_POST['carrera_egre']; } else { $carrera= ""; } $conexion=mysqli_connect("localhost","root","","egresado") or die("Problemas en la conexion"); mysqli_select_db($conexion,'egresado') or die("Problemas en la selección de la base de datos"); if ($_FILES['foto']['name'] =="") { mysqli_query($conexion,"UPDATE persona pe INNER JOIN facultades fa ON pe.id_persona= fa.id_facultad INNER JOIN carreras ca ON ca.id_carrera= pe.id_persona SET id_persona='$_POST[id_persona]', nombres='$_POST[nombres]', apellido='$_POST[apellido]', cedula='$_POST[cedula]', fecha_nac='$_POST[fecha_nac]', telefono='$_POST[telefono]', celular='$_POST[celular]', sexo='$sexo', year_egreso='$_POST[year_egreso]', facultad_egre='$facultad', carrera_egre='$carrera', empresa_lab='$_POST[empresa_lab]', cargo='$_POST[cargo]', direccion_emp='$_POST[direccion_emp]' where id_persona= '$id_persona'") or die(mysqli_error($conexion)); } else{ $ruta = "../fotos/"; opendir($ruta); $destino = $ruta.$_FILES['foto']['name']; copy($_FILES['foto']['tmp_name'],$destino); $nombre=$_FILES['foto']['name']; mysqli_query($conexion,"UPDATE persona pe INNER JOIN facultades fa ON pe.id_persona= fa.id_facultad INNER JOIN carreras ca ON ca.id_carrera= pe.id_persona SET id_persona='$_POST[id_persona]', nombres='$_POST[nombres]', apellido='$_POST[apellido]', cedula='$_POST[cedula]', fecha_nac='$_POST[fecha_nac]', telefono='$_POST[telefono]', celular='$_POST[celular]', sexo='$sexo', year_egreso='$_POST[year_egreso]', facultad_egre='$facultad', carrera_egre='$carrera', empresa_lab='$_POST[empresa_lab]', cargo='$_POST[cargo]', direccion_emp='$_POST[direccion_emp]', foto='".$nombre."' where id_persona= '$id_persona'") or die(mysqli_error($conexion)); } echo "<script> alert('La se ha realizado exitosamente.'); window.location= '../consulta/mostrar.php' </script>"; mysqli_close($conexion); ?>
Les agradezco cualquiera sugerencia para mejorar mi código Votos: 0 - Respuestas: 9 - Vistas: 15 Compartir en: Google Facebook Twitter LinkedIn Link
Respuestas:
-
Fecha: 26-07-2018 11:39:00 Seria bueno que revises, porque en tu codigo estas poniendo que esos campos se modifiquen, si no quieres que se modifiquen, no seria mejor excluirlos del update, y por cierto, no hay forma de hacer un update mas limpio sin subconsultas?
Por cierto, te recomiendo separar tu codigo, la conexion a la bd tiene que estar en otro archivo, el formulario con el php, seria bueno separarlo.
Revisa con herramientas para desarrolador en chrome eo firebug en firefox, me parece que no esta enviando lo que esta en el select. Votos: 1 - Link respuesta -
Fecha: 26-07-2018 13:32:15 Gracias miguel por tu sugerencia de arreglo del código y si el select trabaja bien solo que al momento del UPDATE me borra esos campos no se porque.
y también si he pensado en quitar esos campos del UPDATE y voy arreglar lo de ka conexión.
cualquiera sugerencia t los agradezco tengo rato de estar peleando con este condigo. Votos: 0 - Link respuesta -
Fecha: 27-07-2018 07:31:43 Buenas.
Consulta, los combo o select de carrera y facultad, cuando cargas los valores del registro que estas editando, se llenan con datos ? desde donde?.
Por lo que ve en tu codigo antes de actualizar validas que si esos 2 campos no existes le asignas un valor vacio a la variable que luego usas en la consulta de actualizacion, pues bien la cosa esta ahi, es decir que como no viene con valores desde el post siempre le estas asignando un valor vacio y ese valor es lo que actualiza en tu tabla.
Los select de los formularios no son enviados si no tienen datos, por eso debes tener en el formulario select con informacion y haber seleccionado algo para que sea enviado por post.
espero haberte aportado algo.
saludos.. Votos: 0 - Link respuesta -
Fecha: 27-07-2018 15:34:15 Gracias Raul por tu punto de vista de mi proyecto
pero les pido que como corrijo el código para me trabaje bien y darle una solucion Votos: 0 - Link respuesta -
Fecha: 28-07-2018 12:52:46 Fácil, es que estas indicando que si no llega en el post, lo deje vacio:
if (isset($_POST['facultad_egre'])) { $facultad = $_POST['facultad_egre']; } else { $facultad= ""; }
por eso los esta borrando Votos: 0 - Link respuesta -
Fecha: 29-07-2018 18:39:14 Hola carlos gracias por contestar sigue igual, esos dos campos a modificar que se borran cuando edito otros campos vienen de un combobox select y se si es por eso.
no he podido soluciones eso ayuda. Votos: 0 - Link respuesta -
Fecha: 30-07-2018 07:56:31 Hola, si todavía no lo solucionaste y si quieres escribirme aquí miclientedepruebas@gmail.com y puedo ayudarte.
Saludos. Votos: 0 - Link respuesta -
Fecha: 30-07-2018 09:14:52 Lo que no se ve es como estas imprimiendo los valores en el la etiqueta select ? no hay ningún código de php ahí o estas utilizando java script para cargar esos datos.
Segundo deberías hacer es comprobar que es lo que estas trayendo desde el form...
<?php
echo var_dump($_POST);
exit();
?>
esto comprueba lo que llega al generar ese evento que tienes. Votos: 0 - Link respuesta -
Fecha: 07-08-2018 13:34:00 Hola señor Raul Rch me puede enviar otro correo y gracias Votos: 0 - Link respuesta
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión