Ver Mensaje Individual
  #6 (permalink)  
Antiguo 13/09/2011, 14:31
davidmrtnz413
 
Fecha de Ingreso: marzo-2011
Ubicación: Victoria,Mexico
Mensajes: 45
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Actualizar registros con el mismo id cambiando solo los valores

Cita:
Iniciado por gogupe Ver Mensaje
Luego tendrías que ver que valor tiene $id_alumno... si le pasa la verdadera id, no tendría que fallar.

Como actualiza la información ¿lo metes dentro de un bucle?

Saludos.
el AND id_materia='$id_materia
es por que yo quiero que actualize ese curso si el

id es 0001 y materia es 0002 (claro dependiendo del valor que tengan)

y asi cuando meto eso no me cambia todos los registros con id 0001

por que si no le meto eso y yo hago

UPDATE SET aprobado='$aprobado' WHERE id_alumno='$id_alumno me cambiara todos los que tengo

mmm mira la actualizacion lo saque de un ejemplo donde usan ajax para que se habra los campos a actualizar dentro de la misma pagina

este es el codigo de la actualizacion

Código PHP:
Ver original
  1. <?php
  2.  
  3. //Configuracion de la conexion a base de datos
  4. $bd_host = "localhost";
  5. $bd_usuario = "root";
  6. $bd_password = "root";
  7. $bd_base = "base";
  8. $con = mysql_connect($bd_host, $bd_usuario, $bd_password);
  9. mysql_select_db($bd_base, $con);
  10.  
  11. //variables POST
  12. $id_alumno=$_POST['id_alumno'];
  13. $aprobado=$_POST['aprobado'];
  14.  
  15.  
  16.  
  17.  
  18. //actualiza los datos del empleados
  19. $sql="UPDATE mat_alu SET aprobado='$aprobado' WHERE id_alumno=$id_alumno AND id_materia='$materia'";
  20.  
  21. mysql_query($sql,$con);
  22.  
  23. include('consulta.php');
  24. ?>

esta es la consulta
Código PHP:
Ver original
  1. <?php
  2.  
  3. //Configuracion de la conexion a base de datos
  4. $bd_host = "localhost";
  5. $bd_usuario = "root";
  6. $bd_password = "root";
  7. $bd_base = "base";
  8. $con = mysql_connect($bd_host, $bd_usuario, $bd_password);
  9. mysql_select_db($bd_base, $con);
  10.  
  11. //consulta todos los empleados
  12.  
  13. $sql=mysql_query("select * from mat_alu,$con);
  14.  
  15. //muestra los datos consultados
  16. //haremos uso de tabla para tabular los resultados
  17. ?>
  18.  
  19. <table style="border:1px solid  #69F; color:#000099;width:400px;">
  20. <tr style="background:#99CCCC; color: #000;">
  21.     <td bgcolor="#0099FF">ID</td>
  22.    
  23.     <td bgcolor="#0099FF">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Nombre&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>
  24.     <td bgcolor="#0099FF">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Curso&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>
  25.     <td bgcolor="#0099FF">Aprobado</td>
  26.  
  27.      
  28.    
  29.    
  30.  
  31. </tr>
  32.  
  33. <?php
  34. while($row = mysql_fetch_array($sql)){
  35.     echo "  <tr>";
  36.     //mediante el evento onclick llamaremos a la funcion PedirDatos(), la cual tiene como parametro
  37.     //de entrada el ID del empleado
  38.     echo "      <td><a style=\"text-decoration:underline;aprobador:pointer;\" onclick=\"pedirDatos('".$row['id_alumno']."')\">".$row['fech'].$row['id_alumno']."</a></td>";
  39.    
  40.     echo "      <td>".$row['id_cursos']."</td>";
  41.        
  42.     echo "      <td>".$row['aprobado']."</td>";
  43.    
  44.  
  45.  
  46.    
  47.     echo "  </tr>";
  48. }
  49. ?>
  50. </table>

este es el codigo el cual se abre para cambiar los datos

Código PHP:
Ver original
  1. <?php
  2.  
  3. $bd_host = "localhost";
  4. $bd_usuario = "root";
  5. $bd_password = "root";
  6. $bd_base = "base";
  7. $con = mysql_connect($bd_host, $bd_usuario, $bd_password);
  8. mysql_select_db($bd_base, $con);
  9.  
  10. //consulta los datos del empleado por su id
  11. $id_alumno=$_POST['id_alumno'];
  12.  
  13.  
  14. $sql=mysql_query("SELECT * FROM mat_alu WHERE id_alumno=$id_alumno",$con);
  15.  
  16. $row = mysql_fetch_array($sql);
  17.  
  18. //valores de las consultas
  19.  
  20. $aprobado=$row['aprobado'];
  21. $id_materia=$row['id_materia'];
  22.  
  23.  
  24.  
  25.  
  26. //muestra los datos consultados en los campos del formulario
  27. ?>
  28. <form name="frmalumno" action=""
  29. onsubmit="enviarDatosEmpleado(); return false">
  30.     <p>
  31.       <input name="id_alumno" type="hidden" value="<?php echo $id_alumno; ?>" />
  32.      
  33.       <input name="id_materia" type="text" id="id_materia" value="<?=$id_materia?>">
  34.   </p>
  35. <table width="523" border="0" cellspacing="0" cellpadding="0">
  36.       <tr>
  37.         <td>&nbsp;</td>
  38.         <td>&nbsp;</td>
  39.       </tr>
  40.       <tr>
  41.         <td>&nbsp;</td>
  42.         <td>&nbsp;</td>
  43.       </tr>
  44.       <tr>
  45.         <td>&nbsp;</td>
  46.         <td>Certificado
  47.           <select name="aprobado"  id="aprobado">
  48.         <?php
  49.       echo "<option value=\"".$aprobado."\">".$aprobado."</option>"
  50.       ?>
  51.         <option>Sin especificar</option>
  52.         <option>Si</option>
  53.         <option>No</option>
  54.        
  55.       </select>
  56.     </tr>
  57.   </table>
  58. <p>
  59.   <input type="submit" name="Submit" value="Actualizar" />
  60.   </p>
  61. </form>

y este es el ajax
Código AJAX:
Ver original
  1. //Desarrollado por Jesus Liñán
  2. //ribosomatic.com
  3. //Puedes hacer lo que quieras con el código
  4. //pero visita la web cuando te acuerdes
  5.  
  6. function objetoAjax(){
  7.     var xmlhttp=false;
  8.     try {
  9.         xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  10.     } catch (e) {
  11.         try {
  12.            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  13.         } catch (E) {
  14.             xmlhttp = false;
  15.         }
  16.     }
  17.  
  18.     if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
  19.         xmlhttp = new XMLHttpRequest();
  20.     }
  21.     return xmlhttp;
  22. }
  23.  
  24. function enviarDatosEmpleado(){
  25.     //donde se mostrará lo resultados
  26.     divResultado = document.getElementById('resultado');
  27.     divFormulario = document.getElementById('formulario');
  28.    
  29.     //valores de los inputs
  30.     id_alumno=document.frmalumno.id_alumno.value;
  31.  
  32.     aprobado=document.frmalumno.aprobado.value;
  33.     materia=document.frmalumno.materia.value;
  34.    
  35.  
  36.    
  37.     //instanciamos el objetoAjax
  38.     ajax=objetoAjax();
  39.     //usando del medoto POST
  40.     //archivo que realizará la operacion
  41.     //actualizacion.php
  42.     ajax.open("POST", "actualizacion.php",true);
  43.     ajax.onreadystatechange=function() {
  44.         if (ajax.readyState==4) {
  45.             //mostrar los nuevos registros en esta capa
  46.             divResultado.innerHTML = ajax.responseText
  47.             //mostrar un mensaje de actualizacion correcta
  48.             divFormulario.innerHTML = "<p style=\"border:1px solid red; width:400px;\">La actualizaci&oacute;n se realiz&oacute; correctamente</p>";
  49.            
  50.         }
  51.     }
  52.     //muy importante este encabezado ya que hacemos uso de un formulario
  53.     ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
  54.     //enviando los valores
  55.    
  56.     ajax.send("id_alumno="+id_alumno+"&aprobado="+aprobado+"&materia="+materia)
  57.    
  58. }
  59.  
  60. function pedirDatos(id_alumno){
  61.     //donde se mostrará el formulario con los datos
  62.     divFormulario = document.getElementById('formulario');
  63.    
  64.     //instanciamos el objetoAjax
  65.     ajax=objetoAjax();
  66.     //uso del medotod GET
  67.     ajax.open("POST", "consulta_por_id.php");
  68.     ajax.onreadystatechange=function() {
  69.         if (ajax.readyState==4) {
  70.             //mostrar resultados en esta capa
  71.             divFormulario.innerHTML = ajax.responseText
  72.             //mostrar el formulario
  73.             divFormulario.style.display="block";
  74.         }
  75.     }
  76.     //como hacemos uso del metodo GET
  77.     //colocamos null
  78.     ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
  79.     //enviando los valores
  80.     ajax.send("id_alumno="+id_alumno)
  81. }



igual con modificaciones que le hize hace que cambie el aprobado de un id_alumno que tenga varios id_materia actualizandose solo el valor que selecciono

pero la bronca es que si tengo 4 (por ejemplo)
siempre de los siempres me selecciona el primer registro
__________________
¿La mejor respuesa?...Una pregunta