PHP - PHP Realización de consultas y actualización de datos

 
Vista:
sin imagen de perfil

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:
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";
	}
}
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
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";
	}
}
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.
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 xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

PHP Realización de consultas y actualización de datos

Publicado por xve (6935 intervenciones) el 04/09/2017 08:15:48
Hola Fernando... no se como son las tablas, pero me da la sensación que lo tienes muy liado... nos puedes mostrar la estructura de tus tablas?
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
sin imagen de perfil

PHP Realización de consultas y actualización de datos

Publicado por Fernando Tello (3 intervenciones) el 05/09/2017 00:54:09
Gracias por responder.
Claro, en la imagen se muestra la relación de las tablas implicadas en la función.
Tablas
La idea es que al llamar la función de agregar_resultado, inserte la información de id_resultado, el id_partido (id del partido jugado), el numero de goles del equipo 1(gol 1) y el numero de goles del equipo 2(gol 2) a la tabla resultados (eso hace $sql).

Luego con esa información ya insertada, realizar la consulta del equipo1* ($equ, que me muestra el id del equipo que jugó el partido), y que una vez la consulta del equipo1 haya sido realizada, usar la información de esa consulta y colocarla en la consulta de $goles (como si fuera una sub-consulta), para que el valor que obtenga de la consulta de $goles (que me muestra la cantidad de goles que el equipo tenía antes del partido) pueda ser sumada con los goles que anotaron en el partido ya jugado ($tgol=$goles+$gol1). Y al final, toda esa información sea actualizada en la tabla 'puesto' ($sql_final) ya que esta es la que guarda todos los totales de puntos, goles, victorias, derrotas, empates de todos los equipos y es mostrado en una tabla de posiciones como en un campeonato de futbol real (no es real pero esa es la idea xD).

*equipo1 es un foreign key de la tabla equipos al igual que equipo2

No tengo problemas con el uso de las tablas y la base de datos, el problema no es tanto la relación de las tablas (y sí, sé que son un enredo xD), sino las sentencias que estoy usando en php, ya que no realiza las consultas y por lo tanto no actualiza correctamente, como lo puse en la descripción de la pregunta.

Espero que toda esta información sea lo suficientemente útil, y si no lo es, preguntarme otra vez. Gracias una vez más.
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
Imágen de perfil de Georkis
Val: 75
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

PHP Realización de consultas y actualización de datos

Publicado por Georkis (32 intervenciones) el 06/09/2017 02:19:39
Hola me gustaria ayudarte, pero no se como trabajas... yo uso Symfony3 para el desarrollo web es lo maximo... te recomiendo usarlo, dame detalles si usas algun framework en particular o si hay que hacerlo orientado objeto o una simple programación... a la verdad es lo que quieres un sistema de administración que administre esas cuatros entidad, es así?
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
sin imagen de perfil

PHP Realización de consultas y actualización de datos

Publicado por Fernando (3 intervenciones) el 06/09/2017 04:16:41
Gracias por la recomendación de Symfony, lo usaré algún día. Igual gracias por tomarte el tiempo de leer pero ya decidí en no realizar esa parte de mi proyecto. Así que no te preocupes. Gracias
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