Subir archivos a "clases"
This commit is contained in:
+272
-152
@@ -1,137 +1,143 @@
|
|||||||
<?php
|
<?php
|
||||||
require_once '../includes/conexionBD.php';
|
require_once '../includes/conexionBD.php';
|
||||||
|
|
||||||
class Partida{
|
class Partida
|
||||||
|
{
|
||||||
|
|
||||||
public $idPartida;
|
public $idPartida;
|
||||||
public $nombrePartida;
|
public $nombrePartida;
|
||||||
public $idUsuario;
|
public $idUsuario;
|
||||||
|
|
||||||
public function __construct(
|
public function __construct(
|
||||||
$idPartida=null,
|
$idPartida = null,
|
||||||
$nombrePartida=null,
|
$nombrePartida = null,
|
||||||
$idUsuario=null
|
$idUsuario = null
|
||||||
){
|
) {
|
||||||
$this->idPartida=$idPartida;
|
$this->idPartida = $idPartida;
|
||||||
$this->nombrePartida=$nombrePartida;
|
$this->nombrePartida = $nombrePartida;
|
||||||
$this->idUsuario=$idUsuario;
|
$this->idUsuario = $idUsuario;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function insertar(){
|
public function insertar()
|
||||||
$conexion=conexionBD();
|
{
|
||||||
if(is_array($conexion)){
|
$conexion = conexionBD();
|
||||||
|
if (is_array($conexion)) {
|
||||||
return $conexion;
|
return $conexion;
|
||||||
}
|
}
|
||||||
try{
|
try {
|
||||||
$consulta=$conexion->prepare("
|
$consulta = $conexion->prepare("
|
||||||
INSERT INTO partida
|
INSERT INTO partida
|
||||||
(nombrePartida,idUsuario)
|
(nombrePartida,idUsuario)
|
||||||
VALUES
|
VALUES
|
||||||
(:nombrePartida,:idUsuario)
|
(:nombrePartida,:idUsuario)
|
||||||
");
|
");
|
||||||
$consulta->bindParam(":nombrePartida",$this->nombrePartida);
|
$consulta->bindParam(":nombrePartida", $this->nombrePartida);
|
||||||
$consulta->bindParam(":idUsuario",$this->idUsuario);
|
$consulta->bindParam(":idUsuario", $this->idUsuario);
|
||||||
$consulta->execute();
|
$consulta->execute();
|
||||||
return[
|
return [
|
||||||
"exito"=>"La partida se creó correctamente.",
|
"exito" => "La partida se creó correctamente.",
|
||||||
"exito_tecnico"=>$conexion->lastInsertId()
|
"exito_tecnico" => $conexion->lastInsertId()
|
||||||
];
|
];
|
||||||
}catch(PDOException $error){
|
} catch (PDOException $error) {
|
||||||
return[
|
return [
|
||||||
"error"=>"Ocurrió un error al guardar la partida.",
|
"error" => "Ocurrió un error al guardar la partida.",
|
||||||
"error_tecnico"=>$error
|
"error_tecnico" => $error
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function listar(){
|
public function listar()
|
||||||
$conexion=conexionBD();
|
{
|
||||||
if(is_array($conexion)){
|
$conexion = conexionBD();
|
||||||
|
if (is_array($conexion)) {
|
||||||
return $conexion;
|
return $conexion;
|
||||||
}
|
}
|
||||||
try{
|
try {
|
||||||
$consulta=$conexion->prepare("SELECT * FROM partida");
|
$consulta = $conexion->prepare("SELECT * FROM partida");
|
||||||
$consulta->execute();
|
$consulta->execute();
|
||||||
return $consulta->fetchAll(PDO::FETCH_ASSOC);
|
return $consulta->fetchAll(PDO::FETCH_ASSOC);
|
||||||
}catch(PDOException $error){
|
} catch (PDOException $error) {
|
||||||
return[
|
return [
|
||||||
"error"=>"Ocurrió un error al obtener el listado.",
|
"error" => "Ocurrió un error al obtener el listado.",
|
||||||
"error_tecnico"=>$error
|
"error_tecnico" => $error
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function buscar(){
|
public function buscar()
|
||||||
$conexion=conexionBD();
|
{
|
||||||
if(is_array($conexion)){
|
$conexion = conexionBD();
|
||||||
|
if (is_array($conexion)) {
|
||||||
return $conexion;
|
return $conexion;
|
||||||
}
|
}
|
||||||
try{
|
try {
|
||||||
$consulta=$conexion->prepare("
|
$consulta = $conexion->prepare("
|
||||||
SELECT *
|
SELECT *
|
||||||
FROM partida
|
FROM partida
|
||||||
WHERE idPartida=:idPartida
|
WHERE idPartida=:idPartida
|
||||||
");
|
");
|
||||||
$consulta->bindParam(":idPartida",$this->idPartida);
|
$consulta->bindParam(":idPartida", $this->idPartida);
|
||||||
$consulta->execute();
|
$consulta->execute();
|
||||||
return $consulta->fetch(PDO::FETCH_ASSOC);
|
return $consulta->fetch(PDO::FETCH_ASSOC);
|
||||||
}catch(PDOException $error){
|
} catch (PDOException $error) {
|
||||||
return[
|
return [
|
||||||
"error"=>"Ocurrió un error al buscar la partida.",
|
"error" => "Ocurrió un error al buscar la partida.",
|
||||||
"error_tecnico"=>$error
|
"error_tecnico" => $error
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function editar(){
|
public function editar()
|
||||||
$conexion=conexionBD();
|
{
|
||||||
if(is_array($conexion)){
|
$conexion = conexionBD();
|
||||||
|
if (is_array($conexion)) {
|
||||||
return $conexion;
|
return $conexion;
|
||||||
}
|
}
|
||||||
try{
|
try {
|
||||||
$consulta=$conexion->prepare("
|
$consulta = $conexion->prepare("
|
||||||
UPDATE partida
|
UPDATE partida
|
||||||
SET
|
SET
|
||||||
nombrePartida=:nombrePartida,
|
nombrePartida=:nombrePartida,
|
||||||
idUsuario=:idUsuario
|
idUsuario=:idUsuario
|
||||||
WHERE idPartida=:idPartida
|
WHERE idPartida=:idPartida
|
||||||
");
|
");
|
||||||
$consulta->bindParam(":idPartida",$this->idPartida);
|
$consulta->bindParam(":idPartida", $this->idPartida);
|
||||||
$consulta->bindParam(":nombrePartida",$this->nombrePartida);
|
$consulta->bindParam(":nombrePartida", $this->nombrePartida);
|
||||||
$consulta->bindParam(":idUsuario",$this->idUsuario);
|
$consulta->bindParam(":idUsuario", $this->idUsuario);
|
||||||
$consulta->execute();
|
$consulta->execute();
|
||||||
return[
|
return [
|
||||||
"exito"=>"La partida se editó correctamente.",
|
"exito" => "La partida se editó correctamente.",
|
||||||
"exito_tecnico"=>$this->idPartida
|
"exito_tecnico" => $this->idPartida
|
||||||
];
|
];
|
||||||
}catch(PDOException $error){
|
} catch (PDOException $error) {
|
||||||
return[
|
return [
|
||||||
"error"=>"Ocurrió un error al editar la partida.",
|
"error" => "Ocurrió un error al editar la partida.",
|
||||||
"error_tecnico"=>$error
|
"error_tecnico" => $error
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function eliminar(){
|
public function eliminar()
|
||||||
$conexion=conexionBD();
|
{
|
||||||
if(is_array($conexion)){
|
$conexion = conexionBD();
|
||||||
|
if (is_array($conexion)) {
|
||||||
return $conexion;
|
return $conexion;
|
||||||
}
|
}
|
||||||
try{
|
try {
|
||||||
$consulta=$conexion->prepare("
|
$consulta = $conexion->prepare("
|
||||||
DELETE FROM partida
|
DELETE FROM partida
|
||||||
WHERE idPartida=:idPartida
|
WHERE idPartida=:idPartida
|
||||||
");
|
");
|
||||||
$consulta->bindParam(":idPartida",$this->idPartida);
|
$consulta->bindParam(":idPartida", $this->idPartida);
|
||||||
$consulta->execute();
|
$consulta->execute();
|
||||||
return[
|
return [
|
||||||
"exito"=>"La partida se eliminó correctamente.",
|
"exito" => "La partida se eliminó correctamente.",
|
||||||
"exito_tecnico"=>$this->idPartida
|
"exito_tecnico" => $this->idPartida
|
||||||
];
|
];
|
||||||
}catch(PDOException $error){
|
} catch (PDOException $error) {
|
||||||
return[
|
return [
|
||||||
"error"=>"No se pudo eliminar la partida.",
|
"error" => "No se pudo eliminar la partida.",
|
||||||
"error_tecnico"=>$error
|
"error_tecnico" => $error
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -140,13 +146,14 @@ class Partida{
|
|||||||
* Devuelve las preguntas asignadas a la partida, junto con el
|
* Devuelve las preguntas asignadas a la partida, junto con el
|
||||||
* idPartidaxPregunta (necesario para guardar respuestas después).
|
* idPartidaxPregunta (necesario para guardar respuestas después).
|
||||||
*/
|
*/
|
||||||
public function getPreguntas(){
|
public function getPreguntas()
|
||||||
$conexion=conexionBD();
|
{
|
||||||
if(is_array($conexion)){
|
$conexion = conexionBD();
|
||||||
|
if (is_array($conexion)) {
|
||||||
return $conexion;
|
return $conexion;
|
||||||
}
|
}
|
||||||
try{
|
try {
|
||||||
$consulta=$conexion->prepare("
|
$consulta = $conexion->prepare("
|
||||||
SELECT
|
SELECT
|
||||||
pxp.idPartidaxPregunta,
|
pxp.idPartidaxPregunta,
|
||||||
p.*
|
p.*
|
||||||
@@ -156,13 +163,13 @@ class Partida{
|
|||||||
WHERE pxp.idPartida=:idPartida
|
WHERE pxp.idPartida=:idPartida
|
||||||
ORDER BY pxp.idPartidaxPregunta
|
ORDER BY pxp.idPartidaxPregunta
|
||||||
");
|
");
|
||||||
$consulta->bindParam(":idPartida",$this->idPartida);
|
$consulta->bindParam(":idPartida", $this->idPartida);
|
||||||
$consulta->execute();
|
$consulta->execute();
|
||||||
return $consulta->fetchAll(PDO::FETCH_ASSOC);
|
return $consulta->fetchAll(PDO::FETCH_ASSOC);
|
||||||
}catch(PDOException $error){
|
} catch (PDOException $error) {
|
||||||
return[
|
return [
|
||||||
"error"=>"Ocurrió un error al recuperar las preguntas de la partida.",
|
"error" => "Ocurrió un error al recuperar las preguntas de la partida.",
|
||||||
"error_tecnico"=>$error
|
"error_tecnico" => $error
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -170,66 +177,66 @@ class Partida{
|
|||||||
/**
|
/**
|
||||||
* Asocia una pregunta ya existente a esta partida.
|
* Asocia una pregunta ya existente a esta partida.
|
||||||
*/
|
*/
|
||||||
public function asignarPregunta($idPregunta){
|
public function asignarPregunta($idPregunta)
|
||||||
$conexion=conexionBD();
|
{
|
||||||
if(is_array($conexion)){
|
$conexion = conexionBD();
|
||||||
|
if (is_array($conexion)) {
|
||||||
return $conexion;
|
return $conexion;
|
||||||
}
|
}
|
||||||
try{
|
try {
|
||||||
$consulta=$conexion->prepare("
|
$consulta = $conexion->prepare("
|
||||||
INSERT INTO partidaxpregunta
|
INSERT INTO partidaxpregunta
|
||||||
(idPartida,idPregunta)
|
(idPartida,idPregunta)
|
||||||
VALUES
|
VALUES
|
||||||
(:idPartida,:idPregunta)
|
(:idPartida,:idPregunta)
|
||||||
");
|
");
|
||||||
$consulta->bindParam(":idPartida",$this->idPartida);
|
$consulta->bindParam(":idPartida", $this->idPartida);
|
||||||
$consulta->bindParam(":idPregunta",$idPregunta);
|
$consulta->bindParam(":idPregunta", $idPregunta);
|
||||||
$consulta->execute();
|
$consulta->execute();
|
||||||
return[
|
return [
|
||||||
"exito"=>"La pregunta se asignó correctamente.",
|
"exito" => "La pregunta se asignó correctamente.",
|
||||||
"exito_tecnico"=>$conexion->lastInsertId()
|
"exito_tecnico" => $conexion->lastInsertId()
|
||||||
];
|
];
|
||||||
}catch(PDOException $error){
|
} catch (PDOException $error) {
|
||||||
return[
|
return [
|
||||||
"error"=>"Ocurrió un error al asignar la pregunta.",
|
"error" => "Ocurrió un error al asignar la pregunta.",
|
||||||
"error_tecnico"=>$error
|
"error_tecnico" => $error
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//Cuenta cuántas preguntas tiene la partida en total. Es la primera mitad de la comprobación "¿ha terminado el usuario de jugar?".
|
//Cuenta cuántas preguntas tiene la partida en total. Es la primera mitad de la comprobación "¿ha terminado el usuario de jugar?".
|
||||||
public function contarPreguntasAsignadas(){
|
public function contarPreguntasAsignadas()
|
||||||
$conexion=conexionBD();
|
{
|
||||||
if(is_array($conexion)){
|
$conexion = conexionBD();
|
||||||
|
if (is_array($conexion)) {
|
||||||
return $conexion;
|
return $conexion;
|
||||||
}
|
}
|
||||||
try{
|
try {
|
||||||
$consulta=$conexion->prepare("
|
$consulta = $conexion->prepare("
|
||||||
SELECT COUNT(*) AS total
|
SELECT COUNT(*) AS total
|
||||||
FROM partidaxpregunta
|
FROM partidaxpregunta
|
||||||
WHERE idPartida=:idPartida
|
WHERE idPartida=:idPartida
|
||||||
");
|
");
|
||||||
$consulta->bindParam(":idPartida",$this->idPartida);
|
$consulta->bindParam(":idPartida", $this->idPartida);
|
||||||
$consulta->execute();
|
$consulta->execute();
|
||||||
$fila=$consulta->fetch(PDO::FETCH_ASSOC);
|
$fila = $consulta->fetch(PDO::FETCH_ASSOC);
|
||||||
return (int)$fila["total"];
|
return (int)$fila["total"];
|
||||||
}catch(PDOException $error){
|
} catch (PDOException $error) {
|
||||||
return[
|
return [
|
||||||
"error"=>"Ocurrió un error al contar las preguntas.",
|
"error" => "Ocurrió un error al contar las preguntas.",
|
||||||
"error_tecnico"=>$error
|
"error_tecnico" => $error
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function contarRespuestasUsuario($idUsuario){
|
public function contarRespuestasUsuario($idUsuario)
|
||||||
$conexion=conexionBD();
|
{
|
||||||
if(is_array($conexion)){
|
$conexion = conexionBD();
|
||||||
|
if (is_array($conexion)) {
|
||||||
return $conexion;
|
return $conexion;
|
||||||
}
|
}
|
||||||
try{
|
try {
|
||||||
$consulta=$conexion->prepare("
|
$consulta = $conexion->prepare("
|
||||||
SELECT COUNT(*) AS total
|
SELECT COUNT(*) AS total
|
||||||
FROM respuestaalmacenada ra
|
FROM respuestaalmacenada ra
|
||||||
INNER JOIN partidaxpregunta pxp
|
INNER JOIN partidaxpregunta pxp
|
||||||
@@ -237,15 +244,15 @@ class Partida{
|
|||||||
WHERE pxp.idPartida=:idPartida
|
WHERE pxp.idPartida=:idPartida
|
||||||
AND ra.idUsuario=:idUsuario
|
AND ra.idUsuario=:idUsuario
|
||||||
");
|
");
|
||||||
$consulta->bindParam(":idPartida",$this->idPartida);
|
$consulta->bindParam(":idPartida", $this->idPartida);
|
||||||
$consulta->bindParam(":idUsuario",$idUsuario);
|
$consulta->bindParam(":idUsuario", $idUsuario);
|
||||||
$consulta->execute();
|
$consulta->execute();
|
||||||
$fila=$consulta->fetch(PDO::FETCH_ASSOC);
|
$fila = $consulta->fetch(PDO::FETCH_ASSOC);
|
||||||
return (int)$fila["total"];
|
return (int)$fila["total"];
|
||||||
}catch(PDOException $error){
|
} catch (PDOException $error) {
|
||||||
return[
|
return [
|
||||||
"error"=>"Ocurrió un error al contar las respuestas del usuario.",
|
"error" => "Ocurrió un error al contar las respuestas del usuario.",
|
||||||
"error_tecnico"=>$error
|
"error_tecnico" => $error
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -254,79 +261,192 @@ class Partida{
|
|||||||
* Sustituye al antiguo campo `terminada`: compara cuántas preguntas
|
* Sustituye al antiguo campo `terminada`: compara cuántas preguntas
|
||||||
* tiene la partida contra cuántas ha respondido este usuario.
|
* tiene la partida contra cuántas ha respondido este usuario.
|
||||||
*/
|
*/
|
||||||
public function estaFinalizadaParaUsuario($idUsuario){
|
public function estaFinalizadaParaUsuario($idUsuario)
|
||||||
$totalPreguntas=$this->contarPreguntasAsignadas();
|
{
|
||||||
if(is_array($totalPreguntas)){
|
$totalPreguntas = $this->contarPreguntasAsignadas();
|
||||||
|
if (is_array($totalPreguntas)) {
|
||||||
return $totalPreguntas;
|
return $totalPreguntas;
|
||||||
}
|
}
|
||||||
$totalRespondidas=$this->contarRespuestasUsuario($idUsuario);
|
$totalRespondidas = $this->contarRespuestasUsuario($idUsuario);
|
||||||
if(is_array($totalRespondidas)){
|
if (is_array($totalRespondidas)) {
|
||||||
return $totalRespondidas;
|
return $totalRespondidas;
|
||||||
}
|
}
|
||||||
return $totalPreguntas>0 && $totalPreguntas===$totalRespondidas;
|
return $totalPreguntas > 0 && $totalPreguntas === $totalRespondidas;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Partidas creadas por un usuario, de más reciente a más antigua.
|
* Partidas creadas por un usuario, de más reciente a más antigua.
|
||||||
*/
|
*/
|
||||||
public function listarDelUsuario(){
|
public function listarDelUsuario()
|
||||||
$conexion=conexionBD();
|
{
|
||||||
if(is_array($conexion)){
|
$conexion = conexionBD();
|
||||||
|
if (is_array($conexion)) {
|
||||||
return $conexion;
|
return $conexion;
|
||||||
}
|
}
|
||||||
try{
|
try {
|
||||||
$consulta=$conexion->prepare("
|
$consulta = $conexion->prepare("
|
||||||
SELECT *
|
SELECT *
|
||||||
FROM partida
|
FROM partida
|
||||||
WHERE idUsuario=:idUsuario
|
WHERE idUsuario=:idUsuario
|
||||||
ORDER BY idPartida DESC
|
ORDER BY idPartida DESC
|
||||||
");
|
");
|
||||||
$consulta->bindParam(":idUsuario",$this->idUsuario);
|
$consulta->bindParam(":idUsuario", $this->idUsuario);
|
||||||
$consulta->execute();
|
$consulta->execute();
|
||||||
return $consulta->fetchAll(PDO::FETCH_ASSOC);
|
return $consulta->fetchAll(PDO::FETCH_ASSOC);
|
||||||
}catch(PDOException $error){
|
} catch (PDOException $error) {
|
||||||
return[
|
return [
|
||||||
"error"=>"Ocurrió un error al recuperar las partidas del usuario.",
|
"error" => "Ocurrió un error al recuperar las partidas del usuario.",
|
||||||
"error_tecnico"=>$error
|
"error_tecnico" => $error
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function preguntaAsignada($idPregunta)
|
||||||
|
{
|
||||||
|
$conexion = conexionBD();
|
||||||
|
|
||||||
|
if (is_array($conexion)) {
|
||||||
|
|
||||||
|
|
||||||
public function preguntaAsignada($idPregunta){
|
|
||||||
$conexion=conexionBD();
|
|
||||||
|
|
||||||
if(is_array($conexion)){
|
|
||||||
return $conexion;
|
return $conexion;
|
||||||
}
|
}
|
||||||
|
|
||||||
try{
|
try {
|
||||||
$consulta=$conexion->prepare("
|
$consulta = $conexion->prepare("
|
||||||
SELECT COUNT(*) AS total
|
SELECT COUNT(*) AS total
|
||||||
FROM partidaxpregunta
|
FROM partidaxpregunta
|
||||||
WHERE idPartida=:idPartida
|
WHERE idPartida=:idPartida
|
||||||
AND idPregunta=:idPregunta
|
AND idPregunta=:idPregunta
|
||||||
");
|
");
|
||||||
|
|
||||||
$consulta->bindParam(":idPartida",$this->idPartida);
|
$consulta->bindParam(":idPartida", $this->idPartida);
|
||||||
$consulta->bindParam(":idPregunta",$idPregunta);
|
$consulta->bindParam(":idPregunta", $idPregunta);
|
||||||
$consulta->execute();
|
$consulta->execute();
|
||||||
|
|
||||||
$fila=$consulta->fetch(PDO::FETCH_ASSOC);
|
$fila = $consulta->fetch(PDO::FETCH_ASSOC);
|
||||||
|
|
||||||
return (int)$fila["total"] > 0;
|
return (int)$fila["total"] > 0;
|
||||||
|
} catch (PDOException $error) {
|
||||||
|
|
||||||
}catch(PDOException $error){
|
return [
|
||||||
|
"error" => "Ocurrió un error al comprobar la pregunta.",
|
||||||
|
"error_tecnico" => $error
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Vincula un equipo a esta partida en la tabla intermedia 'equipoxpartida'.
|
||||||
|
* Permite registrar qué grupos están participando en este torneo.
|
||||||
|
*/
|
||||||
|
public function registrarEquipoEnPartida($idEquipo) {
|
||||||
|
$conexion = conexionBD(); // Obtenemos la conexión modular del proyecto
|
||||||
|
|
||||||
return[
|
if (is_array($conexion)) {
|
||||||
"error"=>"Ocurrió un error al comprobar la pregunta.",
|
return $conexion; // Si hay error en la conexión, lo devuelve
|
||||||
"error_tecnico"=>$error
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
// Preparamos la consulta para insertar la relación en la tabla intermedia real
|
||||||
|
$consulta = $conexion->prepare("
|
||||||
|
INSERT INTO equipoxpartida
|
||||||
|
(idPartida, idEquipo)
|
||||||
|
VALUES
|
||||||
|
(:idPartida, :idEquipo)
|
||||||
|
");
|
||||||
|
|
||||||
|
// Vinculamos los parámetros con el objeto de la partida actual y el equipo recibido
|
||||||
|
$consulta->bindParam(":idPartida", $this->idPartida);
|
||||||
|
$consulta->bindParam(":idEquipo", $idEquipo);
|
||||||
|
$consulta->execute();
|
||||||
|
|
||||||
|
return [
|
||||||
|
"exito" => "El equipo se vinculó a la partida correctamente.",
|
||||||
|
"exito_tecnico" => $conexion->lastInsertId()
|
||||||
|
];
|
||||||
|
} catch (PDOException $error) {
|
||||||
|
// Capturamos el error extrayendo solo el mensaje de texto limpio
|
||||||
|
return [
|
||||||
|
"error" => "Ocurrió un error al asignar el equipo a la partida.",
|
||||||
|
"error_tecnico" => $error->getMessage()
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Obtiene todos los equipos que están compitiendo en esta partida.
|
||||||
|
* Es útil para mostrar la lista de rivales antes de empezar a responder.
|
||||||
|
*/
|
||||||
|
public function getEquiposParticipantes() {
|
||||||
|
$conexion = conexionBD();
|
||||||
|
|
||||||
|
if (is_array($conexion)) {
|
||||||
|
return $conexion;
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
// Hacemos un INNER JOIN para traer los nombres de los equipos desde la tabla intermedia
|
||||||
|
$consulta = $conexion->prepare("
|
||||||
|
SELECT
|
||||||
|
exp.idEquipoxPartida,
|
||||||
|
e.idEquipo,
|
||||||
|
e.nombreEquipo
|
||||||
|
FROM equipoxpartida exp
|
||||||
|
INNER JOIN equipo e
|
||||||
|
ON exp.idEquipo = e.idEquipo
|
||||||
|
WHERE exp.idPartida = :idPartida
|
||||||
|
ORDER BY e.nombreEquipo ASC
|
||||||
|
");
|
||||||
|
|
||||||
|
$consulta->bindParam(":idPartida", $this->idPartida);
|
||||||
|
$consulta->execute();
|
||||||
|
|
||||||
|
return $consulta->fetchAll(PDO::FETCH_ASSOC); // Devuelve el array con los equipos rivales
|
||||||
|
} catch (PDOException $error) {
|
||||||
|
return [
|
||||||
|
"error" => "Ocurrió un error al recuperar los equipos de la partida.",
|
||||||
|
"error_tecnico" => $error->getMessage()
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Obtiene todos los jugadores reales (Usuarios) que están jugando en esta partida.
|
||||||
|
* Utiliza la tabla 'equipoxusuario' en SQL para cruzar los datos.
|
||||||
|
*/
|
||||||
|
public function getJugadoresDeLaPartida() {
|
||||||
|
$conexion = conexionBD();
|
||||||
|
|
||||||
|
if (is_array($conexion)) {
|
||||||
|
return $conexion;
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
// Cruza la partida con los equipos, y luego los equipos con los usuarios
|
||||||
|
// para saber los nombres de todas las personas que están jugando el torneo.
|
||||||
|
$consulta = $conexion->prepare("
|
||||||
|
SELECT DISTINCT
|
||||||
|
u.idUsuario,
|
||||||
|
u.nombreUsuario,
|
||||||
|
u.email,
|
||||||
|
e.nombreEquipo
|
||||||
|
FROM equipoxpartida exp
|
||||||
|
INNER JOIN equipoxusuario exu
|
||||||
|
ON exp.idEquipo = exu.idEquipo
|
||||||
|
INNER JOIN usuario u
|
||||||
|
ON exu.idUsuario = u.idUsuario
|
||||||
|
INNER JOIN equipo e
|
||||||
|
ON exu.idEquipo = e.idEquipo
|
||||||
|
WHERE exp.idPartida = :idPartida
|
||||||
|
");
|
||||||
|
|
||||||
|
$consulta->bindParam(":idPartida", $this->idPartida);
|
||||||
|
$consulta->execute();
|
||||||
|
|
||||||
|
return $consulta->fetchAll(PDO::FETCH_ASSOC);
|
||||||
|
} catch (PDOException $error) {
|
||||||
|
return [
|
||||||
|
"error" => "Ocurrió un error al obtener la lista de jugadores.",
|
||||||
|
"error_tecnico" => $error->getMessage()
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
?>
|
|
||||||
Reference in New Issue
Block a user