Foros del Web » Programando para Internet » PHP »

Actualizar múltiples registros en MySQL

Estas en el tema de Actualizar múltiples registros en MySQL en el foro de PHP en Foros del Web. Buenas a todos los foristas de Foros del Web, con frecuencia he visto este foro, pese a que por primera vez me registro, y casi ...
  #1 (permalink)  
Antiguo 19/12/2007, 04:19
 
Fecha de Ingreso: diciembre-2007
Mensajes: 13
Antigüedad: 16 años, 4 meses
Puntos: 0
Actualizar múltiples registros en MySQL

Buenas a todos los foristas de Foros del Web, con frecuencia he visto este foro, pese a que por primera vez me registro, y casi siempre consigo solución a los problemas en PHP que tengo, no soy novato en esto, pero tampoco soy un gran experto, en realidad he aprendido poco a poco leyendo varios posts de este foro, y leyendo otros sitios. Me dedico a escribir en esta ocasión, porque por primera vez no he conseguido una verdadera solución al rollo que tengo, y se trata de los siguiente:

Estoy creando un script para una página de béisbol que dirijo, y hasta ahora me ha ido bien, pero tengo una duda sobre como actualizar múltiples registros de mi base de datos. Creé una tabla que se llama "calendario", ahí almaceno toda la información de los juegos, la fecha, nombre del equipo visitante, nombre del equipo home club, número de carreras del equipo visitante, número de carreras del equipo home club, estadio en donde se llevará a cabo el juego y la hora del mismo.

Ahora bien, estoy creando una página en donde yo vea los datos del juego del día, eso ya lo hice sin problemas, con el siguiente código:

resultados.php

Cita:
<?php
$cn=mysql_connect("localhost","user","clave")or die("Error conexion MySQL");
$db=mysql_select_db("tabla",$cn)or die("No existe BD");
$query=mysql_query("SELECT 1 FROM calendario WHERE 1 AND `date` LIKE CURDATE()")or die("Error consulta");
$n=mysql_num_rows($query);
if($n)
{
while($campo=mysql_fetch_array($query))
{
echo "<FORM METHOD=POST ACTION='graba.php'>";
echo "---------------------------";
echo "<br>Visitante: <INPUT TYPE='hidden' NAME='visitante' VALUE='".$campo['visitante']."'>".$campo['visitante'];
echo "<br>Carreras Visitante: <INPUT TYPE='text' NAME='carrerasv' VALUE='".$campo['carrerasv']."'>";
echo "<br>Home Club: <INPUT TYPE='hidden' NAME='homeclub' VALUE='".$campo['homeclub']."'>".$campo['homeclub'];
echo "<br>Carreras Home Club: <INPUT TYPE='text' NAME='carrerashc' VALUE='".$campo['carrerashc']."'>";
echo "<br><INPUT TYPE='submit' value='Grabar'> <br>";
echo "---------------------------<br>";
echo "</FORM>";
}
}
else
{

}
?>
Ahora, como ven, los datos del equipo Home Club y Visitante no me interesa modificarlos, por eso están en hidden, lo que quiero, es cuando termine cada juego insertar en cada uno de ellos los resultados en los campos "carrerasv" y "carrerashc". Pero resulta, que cuando monto la página en el servidor me aparecen todos los juegos del día, y eso está bien, eso es lo que quiero, pero cuando inserto los resultados del juego 1, me pone el resultado de ese juego en todos los juegos del día, a continuación el script del archivo que envía la info a la base de datos:

graba.php

Cita:
<?php
$carrerasv=$_POST['carrerasv'];
$carrerashc=$_POST['carrerashc'];
//////////////
$cn=mysql_connect("localhost","user","clave")or die("Error conexion MySQL");
$db=mysql_select_db("tabla",$cn)or die("No existe BD");
$query=mysql_query("UPDATE calendario SET carrerasv='$carrerasv',carrerashc='$carrerashc' WHERE 1 AND `date` LIKE CURDATE()'");

if($query)
{
echo "Actualizacion OK ! ";
}
else
{
echo " No hubo actualizacion";
}
?>
En fin, reitero por si a caso no aclaré bien. Me aparece la página con todos los juegos del día, pero cuando inserto los resultados del juego 1 y presiona GRABAR, me envía ese resultado a todos los juegos que se llevaron a cabo ese día, y lo que quiero es que separe, los resultados del juego 1 para el juego 1, los resultados del juego 2 para el juego 2, etc, etc...

Les agradecería que por favor me ayudaran, de estar en sus manos la respuesta.

Muchas Gracias
retrievr2005.

PD: A los moderadores del foro, un detalle, a la hora de registrarme aparece que la hora en Venezuela es GMT -04:00 y la semana pasada fue cambiada a GMT -04:30, si es de su interés bajar el parche correspondiente que actualiza el foro... Es solo un consejo jejejeje.
  #2 (permalink)  
Antiguo 19/12/2007, 05:21
Avatar de popobcn
Moderador
 
Fecha de Ingreso: noviembre-2006
Ubicación: Cerdanyola del Vallès
Mensajes: 3.892
Antigüedad: 17 años, 5 meses
Puntos: 1142
Re: Actualizar múltiples registros en MySQL

Buenas,

Se actualizan todos los registros del dia por que tal y como tienes realizada la consulta, esa es su finalidad.

Si lo que quieres es actualizar un JUEGO en concreto, tendras que añadir una comparación en tu consulta para que solo actualice ese JUEGO en concreto. Seguramente JUEGO1 tendra un ID en la tabla en la que se guarda, tan solo has de efectuar una ligera modificacion en el UPDATE añadiendo "WHERE id=$id" y te actualizará los resultados de ese único registro.

Saludos
  #3 (permalink)  
Antiguo 19/12/2007, 06:30
 
Fecha de Ingreso: diciembre-2007
Mensajes: 13
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: Actualizar múltiples registros en MySQL

Amigo Popobcn, en primer término muchas gracias por responder, he realizado el movimiento tal cual como me lo indicó en su respuesta. No tenía el campo ID dentro de la tabla, pero la he creado, y añadí en la instrucción UPDATE lo que usted me especificó, pero esto no me ha funcionado, a continuación le muestro como coloqué el script:

graba.php

Cita:
<?php
$carrerasv=$_POST['carrerasv'];
$carrerashc=$_POST['carrerashc'];
//////////////
$cn=mysql_connect("localhost","user","clave")or die("Error conexion MySQL");
$db=mysql_select_db("tabla",$cn)or die("No existe BD");
$query=mysql_query("UPDATE calendario SET carrerasv='$carrerasv',carrerashc='$carrerashc' WHERE 1 AND `date` LIKE CURDATE() AND `id`='$id'");

if($query)
{
echo "Actualizacion OK ! ";
}
else
{
echo " No hubo actualizacion";
}
?>
Si por favor podría indicarme si realicé el procedimiento de manera correcta.

Saludos
retrievr2005.
  #4 (permalink)  
Antiguo 19/12/2007, 08:56
Avatar de foreverOdd  
Fecha de Ingreso: noviembre-2007
Ubicación: Caracas
Mensajes: 489
Antigüedad: 16 años, 5 meses
Puntos: 14
Re: Actualizar múltiples registros en MySQL

Te estaria faltando decir de quien es el $id, es decir:
$id=$_POST['id'];
  #5 (permalink)  
Antiguo 19/12/2007, 14:26
 
Fecha de Ingreso: diciembre-2007
Mensajes: 13
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: Actualizar múltiples registros en MySQL

Excelente amigo, muchas gracias. Me funcionó perfecto!.

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 23:23.