
PHP Realización de consultas y actualización de datos
Publicado por Fernando Tello (3 intervenciones) el 03/09/2017 22:06:07
Hola, he estado trabajando en un sistema de almacenamiento para un campeonato de futbol.
Me encontré con un problema que es que no actualiza información mi función:
La idea es que al insertar la información en la tabla resultados, actualice también la información de la tabla puesto que es la encargada de guardar la información tal como puntos, goles, victorias, etc. con los datos del resultado de un partido ya jugado (tal como se haría en una tabla de posiciones). La función sí Inserta datos en la tabla de resultados, pero no actualiza mi tabla puesto. También me aseguré que la consulta de $equ funcionara correctamente en MySqlWorkbench (que ahí creé mi base de datos). Creo que aquí el problema es que $sql_final no reconoce a $equ como una consulta pero no sé como hacer para que la reconozca.
Probé con este otro código en donde no uso $equ y hago consultas más grandes
En este sí inserta y sí actualiza pero no correctamente, ya que $goles no extrae la cantidad de goles que tiene el equipo antes del partido y $tgol adquiere el valor de $gol1 y actualiza ese valor a la tabla puesto. Creo que el problema va porque $goles y $gol no son enteros y no se pueden sumar.
Quisiera usar el primer código para no realizar consultas tan grandes y no usar tanto código (porque después tengo que realizar otras 2 funciones parecidas y las tengo que copiar a mano :'v) y también poder resolver el problema de la actualización de los goles. Espero que alguien pueda ver mi problema. Gracias de antemano.
Me encontré con un problema que es que no actualiza información mi función:
1
2
3
4
5
6
7
8
9
10
11
12
class nuevo_resultado{
public function agregar_resultado($id,$par,$gol1,$gol2){
$sql="INSERT INTO resultados VALUES($id,$par,$gol1,$gol2);";
$res=mysql_query($sql,Conectar::con());
$equ="SELECT equipo1 FROM partidos WHERE id_partido=(SELECT partido FROM resultados WHERE id_resultado=$id);";
$goles="SELECT goles FROM puesto WHERE equipo=$equ;";
$tgol=$goles+$gol1;
$sql_final="UPDATE puesto SET goles=$tgol WHERE equipo=$equ;";
$res_final=mysql_query($sql_final,Conectar::con());
echo "SE INSERTO CORRECTAMENTE :v";
}
}
Probé con este otro código en donde no uso $equ y hago consultas más grandes
1
2
3
4
5
6
7
8
9
10
11
class nuevo_resultado{
public function agregar_resultado($id,$par,$gol1,$gol2){
$sql="INSERT INTO resultados VALUES($id,$par,$gol1,$gol2);";
$res=mysql_query($sql,Conectar::con());
$goles="SELECT goles FROM puesto WHERE equipo=(SELECT equipo1 FROM partidos WHERE id_partido=(SELECT partido FROM resultados WHERE id_resultado=$id));";
$tgol=$goles+$gol1;
$sql_final="UPDATE puesto SET goles=$tgol WHERE equipo=(SELECT equipo1 FROM partidos WHERE id_partido=(SELECT partido FROM resultados WHERE id_resultado=$id));";
$res_final=mysql_query($sql_final,Conectar::con());
echo "SE INSERTO CORRECTAMENTE :v";
}
}
Quisiera usar el primer código para no realizar consultas tan grandes y no usar tanto código (porque después tengo que realizar otras 2 funciones parecidas y las tengo que copiar a mano :'v) y también poder resolver el problema de la actualización de los goles. Espero que alguien pueda ver mi problema. Gracias de antemano.
Valora esta pregunta


0