Cita:
Iniciado por gogupe 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<?php
//Configuracion de la conexion a base de datos
$bd_host = "localhost";
$bd_usuario = "root";
$bd_password = "root";
$bd_base = "base";
//variables POST
$id_alumno=$_POST['id_alumno'];
$aprobado=$_POST['aprobado'];
//actualiza los datos del empleados
$sql="UPDATE mat_alu SET aprobado='$aprobado' WHERE id_alumno=$id_alumno AND id_materia='$materia'";
include('consulta.php');
?>
esta es la consulta
Código PHP:
Ver original<?php
//Configuracion de la conexion a base de datos
$bd_host = "localhost";
$bd_usuario = "root";
$bd_password = "root";
$bd_base = "base";
//consulta todos los empleados
//muestra los datos consultados
//haremos uso de tabla para tabular los resultados
?>
<table style="border:1px solid #69F; color:#000099;width:400px;">
<tr style="background:#99CCCC; color: #000;">
<td bgcolor="#0099FF">ID</td>
<td bgcolor="#0099FF"> Nombre </td>
<td bgcolor="#0099FF"> Curso </td>
<td bgcolor="#0099FF">Aprobado</td>
</tr>
<?php
echo " <tr>";
//mediante el evento onclick llamaremos a la funcion PedirDatos(), la cual tiene como parametro
//de entrada el ID del empleado
echo " <td><a style=\"text-decoration:underline;aprobador:pointer;\" onclick=\"pedirDatos('".$row['id_alumno']."')\">".$row['fech'].$row['id_alumno']."</a></td>";
echo " <td>".$row['id_cursos']."</td>";
echo " <td>".$row['aprobado']."</td>";
echo " </tr>";
}
?>
</table>
este es el codigo el cual se abre para cambiar los datos
Código PHP:
Ver original<?php
$bd_host = "localhost";
$bd_usuario = "root";
$bd_password = "root";
$bd_base = "base";
//consulta los datos del empleado por su id
$id_alumno=$_POST['id_alumno'];
$sql=mysql_query("SELECT * FROM mat_alu WHERE id_alumno=$id_alumno",$con);
//valores de las consultas
$aprobado=$row['aprobado'];
$id_materia=$row['id_materia'];
//muestra los datos consultados en los campos del formulario
?>
<form name="frmalumno" action=""
onsubmit="enviarDatosEmpleado(); return false">
<p>
<input name="id_alumno" type="hidden" value="<?php echo $id_alumno; ?>" />
<input name="id_materia" type="text" id="id_materia" value="<?=$id_materia?>">
</p>
<table width="523" border="0" cellspacing="0" cellpadding="0">
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td>Certificado
<select name="aprobado" id="aprobado">
<?php
echo "<option value=\"".$aprobado."\">".$aprobado."</option>"
?>
<option>Sin especificar</option>
<option>Si</option>
<option>No</option>
</select>
</tr>
</table>
<p>
<input type="submit" name="Submit" value="Actualizar" />
</p>
</form>
y este es el ajax
Código AJAX:
Ver original//Desarrollado por Jesus Liñán
//ribosomatic.com
//Puedes hacer lo que quieras con el código
//pero visita la web cuando te acuerdes
function objetoAjax(){
var xmlhttp=false;
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
}
}
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
}
function enviarDatosEmpleado(){
//donde se mostrará lo resultados
divResultado = document.getElementById('resultado');
divFormulario = document.getElementById('formulario');
//valores de los inputs
id_alumno=document.frmalumno.id_alumno.value;
aprobado=document.frmalumno.aprobado.value;
materia=document.frmalumno.materia.value;
//instanciamos el objetoAjax
ajax=objetoAjax();
//usando del medoto POST
//archivo que realizará la operacion
//actualizacion.php
ajax.open("POST", "actualizacion.php",true);
ajax.onreadystatechange=function() {
if (ajax.readyState==4) {
//mostrar los nuevos registros en esta capa
divResultado.innerHTML = ajax.responseText
//mostrar un mensaje de actualizacion correcta
divFormulario.innerHTML = "<p style=\"border:1px solid red; width:400px;\">La actualización se realizó correctamente</p>";
}
}
//muy importante este encabezado ya que hacemos uso de un formulario
ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
//enviando los valores
ajax.send("id_alumno="+id_alumno+"&aprobado="+aprobado+"&materia="+materia)
}
function pedirDatos(id_alumno){
//donde se mostrará el formulario con los datos
divFormulario = document.getElementById('formulario');
//instanciamos el objetoAjax
ajax=objetoAjax();
//uso del medotod GET
ajax.open("POST", "consulta_por_id.php");
ajax.onreadystatechange=function() {
if (ajax.readyState==4) {
//mostrar resultados en esta capa
divFormulario.innerHTML = ajax.responseText
//mostrar el formulario
divFormulario.style.display="block";
}
}
//como hacemos uso del metodo GET
//colocamos null
ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
//enviando los valores
ajax.send("id_alumno="+id_alumno)
}
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