Foros del Web » Programando para Internet » PHP »

Comando update de mysql aplicado en un script de php

Estas en el tema de Comando update de mysql aplicado en un script de php en el foro de PHP en Foros del Web. Hola a todos amigos de foros del web, espero que se encuentren muy bien. Mi problema es el siguiente tengo un formulario con varios campos ...
  #1 (permalink)  
Antiguo 04/06/2007, 22:52
 
Fecha de Ingreso: julio-2006
Mensajes: 102
Antigüedad: 17 años, 8 meses
Puntos: 1
Comando update de mysql aplicado en un script de php

Hola a todos amigos de foros del web, espero que se encuentren muy bien.
Mi problema es el siguiente tengo un formulario con varios campos select entre muchos otros en los que recupero los datos del horario de un profesor
de una tabla llamada tabla_horarios que coNforma una base de datos en mysql, esta tabla tiene los campos Dia,Hora,Grupo,Materia(entre otros), y los select corresponden a cada uno de ellos y los llamo seleccion_dia_fila1, seleccion_hora_fila1,seleccion_grupo_fila1,selecci on_materia_fila1 y cada fila compuesta por estos 4 select corresponde a un registro recuperado de la tabla, y asi tengo varias filas(de 4 en 4, variando el numero en el nombre del select respectivamente), para que una vez recuperado el usuario pueda modificar los datos. Hasta aqui espero haberlos ubicado en el contexto de mi trabajo. Una vez el usuario hace click en un boton que tengo al final del formulario llamado Actualizar registro se van los datos al script en php que me va actualizar la tabla, y aqui es donde viene mi pregunta o problema: yo necesito hacer varias actualizaciones en la tabla a la vez de las modificaciones hechas o no por el usuario pues tengo varias filas compuestas por los 4 select que corresponden a un dia de horario(los dias se pueden repetir por ejemplo hay varios lunes en el select de dia pero obviamente con diferente hora,grupo y materia) del profesor entonces hago esto:
$dia[1] = $_POST['seleccion_dia_fila1'];
$hora[1] = $_POST['seleccion_hora_fila1'];
$grupo[1] = $_POST['seleccion_grupo_fila1'];
$materia[1] = $_POST['seleccion_materia_fila1'];
$dia[2] = $_POST['seleccion_dia_fila2'];
$hora[2] = $_POST['seleccion_hora_fila2'];
$grupo[2] = $_POST['seleccion_grupo_fila2'];
$materia[2] = $_POST['seleccion_materia_fila2'];
..... y asi guardo los datos en vectores para cada fila de los 4 select
despues hago un for:
for ($i=1; $i<=$p; $i++) {
$consulta_actualizar_horario_registro_profesor = "UPDATE tabla_horarios " .
" SET Dia = '$dia[$i]', " .
"Hora = '$hora[$i]', Grupo = '$grupo[$i]', Materia = '$materia[$i]' " .
"WHERE Num_doc_prof = '" . $_POST['numero_documento_prof'] . "'";
$result2 = mysql_query($consulta_actualizar_horario_registro_ profesor, $colegio) or die(mysql_error());
}
hago este for para que supuestamente me haga cada vez la consulta de actualizacion de un registro guardado en los respectivos vectores declarados anteriormente y que guardan los datos enviados de los 4 select, pero no me funciona, reviso la tabla y me actualiza todos los registros del horario para el respectivo profesor con los datos de la ultima fila de 4 select, por ejemplo en este caso con los datos que hay en los vectores:
$dia[2] = $_POST['seleccion_dia_fila2'];
$hora[2] = $_POST['seleccion_hora_fila2'];
$grupo[2] = $_POST['seleccion_grupo_fila2'];
$materia[2] = $_POST['seleccion_materia_fila2'];
No se si es que no se puede manejar arrays en una consulta o estoy manejando mal alguna sintaxis, ademas lo hago asi por que no se si el comando UPDATE permita hacer varias actualizaciones a la vez, sin utilizar alguna ciclo (while,for,do while...), por que segun lo que he leido y visto en ejemplos de consultas con update solo se puede actualizar una fila a la vez y que se especifica por medio del where, y que si se quita este si actualizaria todas las filas de una tabla pero yo solo quiero para un registro en particular que en este caso es un profesor, pues esta tabla de horarios tiene horarios para varios profesores y los diferencio con su cedula.
PERDONEN LO EXTENSO DEL TEMA PERO ES QUE ME GUSTA HACERME ENTENDER BIEN Y UBICARLOS EN EL CONTEXTO PARA QUE ME PUEDAN AYUDAR, ESTOY DESESPERANDOME PUES NO SE COMO SOLUCIONAR ESTE PROBLEMA, A LO MEJOR DEBE SER UNA BOBADA PERO BUENO ESTOY APRENDIENDO HASTA AHORA ESTO DE PROGRAMAR EN PHP. DE ANTEMANO LE AGRADEZCO A TODOS LOS QUE ME PUEDAN AYUDAR A SOLUCIONAR ESTE INCONVENIENTE. MUCHAS GRACIAS.......
  #2 (permalink)  
Antiguo 06/06/2007, 13:15
 
Fecha de Ingreso: junio-2007
Mensajes: 2
Antigüedad: 16 años, 10 meses
Puntos: 0
Re: Comando update de mysql aplicado en un script de php

hola, me ha pasado lo mismo que a ti y parece que lo he resuelto

//recojo el número de filas del formulario previo
$numfilas=$_POST['numfilas'];

for ($i=0; $i<$numfilas; $i++) {
//guardo los datos de una fila
$dia = $_POST['seleccion_dia_fila'][$i];
$hora = $_POST['seleccion_hora_fila'][$i];
$grupo = $_POST['seleccion_grupo_fila'][$i];
$materia = $_POST['seleccion_materia_fila'][$i];

//y actualizo sólo una fila cada vez

$consulta_actualizar_horario_registro_profesor = "UPDATE tabla_horarios " .
" SET Dia = '$dia', " .
"Hora = '$hora', Grupo = '$grupo', Materia = '$materia' " .
"WHERE Num_doc_prof = '" . $_POST['numero_documento_prof'] . "'";
$result2 = mysql_query($consulta_actualizar_horario_registro_ profesor, $colegio) or die(mysql_error());
}

saludos
  #3 (permalink)  
Antiguo 27/12/2011, 16:41
 
Fecha de Ingreso: enero-2010
Mensajes: 16
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Comando update de mysql aplicado en un script de php

Buenos días

Gracias por la publicacion, me fue de mucha ayuda

Gracias
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 14:39.