PHP - Ayuda para modificar registro

   
Vista:

Ayuda para modificar registro

Publicado por Stefan (1 intervención) el 07/06/2016 18:28:08
Hola buenas miren soy bastante novato. Tengo un trabajo que hacer en el que tengo una base de datos en php myadmin. Me he quedado bloqueado en una parte en la que hay que modificar registro. Voy a adjuntar los 2 archivos para que se vea mas claramente mi problema.

Quiero saber como hacer para que se modifiquen las notas una vez que le de al boton ver notas. Los datos estan ligados a una base de datos.

Hay una linea comentada en el fichero modificar_registro donde indico la parte en concreto.


El problema está que al darle ver notas aparece el mensaje que está en una de las capturas que adjunto.
Gracias de verdad. Solo necesito como hacer para que se guarde una vez pulsado el boton "Ver notas"
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de kip

Ayuda para modificar registro

Publicado por kip (563 intervenciones) el 07/06/2016 23:42:30
Hola, analize tu codigo y encontre muchos errores, esta muy distorsionado a el sistema que tienes en mente desarrollar.

Por ejemplo en esta parte:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
	    $consulta = "select alumnos.nombre as nombre,alumnos.apellidos as apellidos,modulos_alumnos.nota as nota from
					alumnos inner join modulos_alumnos on alumnos.dni=modulos_alumnos.dni
					where Codigo='$CodNota' order by apellidos";
  	    $resultado=mysql_query($consulta, $conexion) or die ("Error en la consulta". mysql_error());
   	    while ($registro=mysql_fetch_array($resultado)){
$i = 0 ; //iniciamos nuestro cont en cero
/*el siguiente bucle nos permite obtener la informacion obtenida
de la ejecución de la sentencia de sql */
while ($row = mysql_fetch_row($resultado)){
			echo "<tr><td>".$row[1]." , ".$row[0]."</td>
					  <td><input type='text' name='nota[$i]' value='".$row[2]."'/></td>
					  </tr>";$i++;
 
}

No entiendo porque haces dos fetch a tu $resultado, y en el atributo name colocas como parametro de indice en la creacion del array el auto incrementador que ademas de estar mal ubicado en donde esta no deberia ir alli en ese atributo, aquella variable $i quitala de alli y colocala fuera del while ya que en cada inicio del bucle volvera a tener un valor de 0.

Ahora bien aqui:
1
2
3
4
5
6
7
8
9
10
foreach ($_POST['nota'] as $indice => $valor){
//Vamos a verificar si trae la opcion de eliminar o modificar
$opcion = substr ($_POST['nota'][$indice],0,-1); //extraemos la parte de la cadena que elimina y/o modifica
switch($opcion){
//generamos la sentencia para la modificación filtrando por el id para que solo cambie ese registro
	case 'modifica':$sql="UPDATE modulos_alumnos SET
	                      nota='".$_POST['nota'][$indice];break;
 
	default: echo "<center>NO HAY NADA SELECCIONADO</center>"; break;
}

No entiendo nada de nada, haces un substr para tomar algo que en realidad no existe, ya que segun en el archivo que envias los datos no estas enviando nada que diga 'modificar' como valor en el indice del array bidimensional que estas recibiendo, ademas si estoy equivocado y colocas como valor en ese array la palabra modificar, porque usas el mismo para actualizar la nota en la tabla? cuando se supone que tendria que ser un valor entero o decimal como nota, no?

Te estas complicando demasiado, seria mejor simplemente hacer un SELECT comparar valores y si no son iguales actualizar y si lo son, pues no actualizar, eso claro que lo harias en el archivo que recibe los datos del form, y en el que los envia pues deberias simplificar las cosas, a menos que cada alumno contenga 4 notas en la tabla, crees en un while cada input dependiendo de los campos y al momento de actualizar recorras el array de aquel input para hacer el UPDATE en cada mismo, no veo la necesidad de hacer lo que haces.

Te recomiendo reconfigurar el sistema que tratas de crear, hay muchas cosas que no te funcionaran tal como estan.

Si tienes dudas comentanos.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar