Foros del Web » Programando para Internet » PHP »

Problema al guardar

Estas en el tema de Problema al guardar en el foro de PHP en Foros del Web. Buenas tardes. Bueno. resulta que tengo una pagina donde consulto unos datos de la base. en esta pagina muestro las asignaturas que tiene un alumno ...
  #1 (permalink)  
Antiguo 11/06/2009, 17:03
 
Fecha de Ingreso: mayo-2009
Mensajes: 177
Antigüedad: 15 años
Puntos: 1
Problema al guardar

Buenas tardes.

Bueno. resulta que tengo una pagina donde consulto unos datos de la base. en esta pagina muestro las asignaturas que tiene un alumno registradas. por asignatura coloco un input text para poder calificarla. todo es dinamico.
Pero el problema empieza cuando intento guardarlos.
como es dinamico, no se sabe cuantos textbox van a salir, ya que todos los alumnos no tienen la misma cantidad de notas. tengo txtcodasig, txtasignatura, txtnota y txtidalumno.

tengo una pagina para guardarlos y en esta los recibo por get.
los texts estan pasando sin problema. el problema es que se llaman igual pero hay varios con diferentes notas y diferentes asignaturas, tengo algo como esto para recibirlos. y el contador que ven lo cree en la otra pagina para contar el numero de materias que tendria el alumno a ver que podia hacer con esto, pero lo que he ensayado no me ha funcionado y solo me guarda una la nota de una materia

$contador=$_GET['txtcontador'];
for ($i=0;$i<=$contador;$i++)
{
$id=$_GET['txtidentificacion'];
$nota=$_GET['txtnota'];
$codasig=$_GET['txtcodasig'];
mysql_query("update tblcalifi set nota='$nota' where identificacion='$id' and codasig='$codasig'",$conexion);
}

Gracias de antemano

Última edición por jucas1987; 11/06/2009 a las 17:32
  #2 (permalink)  
Antiguo 11/06/2009, 18:09
Avatar de piojoman  
Fecha de Ingreso: enero-2005
Ubicación: Argentina
Mensajes: 224
Antigüedad: 19 años, 3 meses
Puntos: 3
Respuesta: Problema al guardar por favor ayudenme

La verdad, y con una mano en el corazon te digo que no entendi nada de nada de lo que quieres hacer, me parecio al leer que lo que queres hacer es en una pagina tomar ciertos datos sobre asignaturas de alumnos, su id, notas y otras cosas mas, y que por ejemplo cada alumno tendria mas o menos asignaturas y notas que otro compañero... no es asi??? y que luego tienes otra pagina en la que lees los datos anteriores y lo quieres grabar en una base de datos! eso entendi a duras penas. Si es asi, te digo que por ahi la solucion esta en lo conceptual.

cuando presionamos sobre un boton Submit mandamos a cargar otra pagina, lo cual tenemos que conseguir que ocurra lo menos posible. Por lo que pude ver en tu ejemplo, en tu segunda pagina quieres leer dato a dato separado, en principio seria complicado y tendriamos que cargar una pagina por cada asignatura, te imaginas cargar 100 asignaturas y que cargue la misma cantidad de veces la pagina??..

Yo cargaria todos los datos en tres variables diferentes, una para el ID, otra para las asignaturas (todas juntas) y notas (tambien todas juntas).

EJEMPLO

ID= 12345
Asignatura=Matematica,Literatura,Ingles,Fisica
Nota=8,9,5,6

de esta forma enviamos una sola peticion, despues en la segunda pagina podemos usar la funcion $Asig = explode(",",$_get['Asignatura']); y lo mismo con las notas, entonces tendremos dos Array uno para las asignaturas y otro para las notas y un unico indice sirve para los dos datos.

ahora si necesitariamos un for de $i=0 hasta count($Asig);

y dentro...

Código PHP:

//estas dos lineas van antes del for
$conexion mysql_connect('localhost''root''contraseña de la base de datos');
$base_datos mysql_select_db('Base_de_datos'$conexion);

//estas cuatro lineas son las que van dentro del form
$queTabla "SELECT * FROM Tabla_a_usar ";
$consulta mysql_query($queTabla$conexion) or die(mysql_error()); 
$sSQL="Update TABLA Set $Asig[$i]=$Notas[$i] Where ID=$ID";
mysql_query($sSQL); 
Sinceramente no lo probe porque es medio engorroso, mas cuando estoy programando. Pero en teoria deberia ser algo asi, explicando un poco mejor, el codigo php se conecta a la base de datos y busca (cuando entra en el for) en la Columna ID el ID ingresado en el form, cuando lo ubica busca los otros campos y reemplaza los valores por los que hay en el arreglo Notas!

Última edición por piojoman; 11/06/2009 a las 18:09 Razón: se me pianto en punto y coma
  #3 (permalink)  
Antiguo 11/06/2009, 18:17
 
Fecha de Ingreso: mayo-2009
Mensajes: 177
Antigüedad: 15 años
Puntos: 1
Respuesta: Problema al guardar por favor ayudenme

Oye parece mas complejo de lo que yo pensaba, bueno en fin eso me pasa por novato. pero si entendiste lo que queria decirte. voy a intentar hacerlo y luego escribo para confirmar si lo logre.

Gracias por tu colaboracion.
  #4 (permalink)  
Antiguo 11/06/2009, 18:22
 
Fecha de Ingreso: junio-2009
Mensajes: 8
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Problema al guardar por favor ayudenme

No se si entendi...

Pregunta...

Es esto lo que necesitas... por favor dime, si?

form.php
Código PHP:

<form name="form1" method="post" action="form_2.php">
  <
label>Nombre 1 <br>
  <
input name="textfield[]" type="text" id="textfield[]">
  </
label>
  <
p>Nombre 2<br>
    <
label>
    <
input name="textfield[]" type="text" id="textfield[]">
    </
label>
</
p>
  <
p>Nombre 3<br>
    <
label>
    <
input name="textfield[]" type="text" id="textfield[]">
    </
label>
</
p>
  <
p>
    <
label>
    <
input type="submit" name="Submit" value="Enviar">
    </
label>
  </
p>
</
form
form_2.php
Código PHP:

<?php

$var
=$_POST["textfield"];

print_r($var);

echo 
" <br><br><b>Otra forma</b><br><br> ";

echo 
" <br> Muestro Nombre 1: ".$var[0];
echo 
" <br> Muestro Nombre 2: ".$var[1];
echo 
" <br> Muestro Nombre 3: ".$var[2];

?>
Por favor dime si entendi bien tu problema...

Pero tienes que pasar todos los texarea como arrays... si no solo guardaras el ultimo enviado...

Saludo
  #5 (permalink)  
Antiguo 11/06/2009, 19:01
Avatar de piojoman  
Fecha de Ingreso: enero-2005
Ubicación: Argentina
Mensajes: 224
Antigüedad: 19 años, 3 meses
Puntos: 3
Respuesta: Problema al guardar por favor ayudenme

logx el problema del ejemplo es que es para elementos finitos, lo cual, se genera el problema cuando se quiere ingresar 20 notas diferentes, y en el segundo alumno se agregan solo 2 notas. A esa solucion la pense como mandar todos los datos como una cadena y luego generar el array con explode.
  #6 (permalink)  
Antiguo 11/06/2009, 22:24
 
Fecha de Ingreso: junio-2009
Mensajes: 8
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Problema al guardar por favor ayudenme

Amigo tienes muchos problemas a la hora de hacerte explicar…

No deberías expresarte asi porque das el doble de trabajo…

De todas formas realice un ejemplo y lo subi en esta url

h t t p :/ /fo ro s .h o s t ei.co m / e j 1/

Lo puedes ver funcionando y puedes bajar el codigo y la db del ejemplo

Un detalle a cambiar es poner todas las notas y materias separadas por comas y no por espacios en blanco como lo hice yo…

De todas formas te servirá par darte cuenta como funciona

Corrúguelo y adáptalo a tu script

Espero agradezcas su es lo que buscabas.

Saludos
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 06:25.