Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| cbdbd8bc4b |
@@ -229,7 +229,13 @@ class Juego
|
|||||||
* - la respuesta pertenece a esa pregunta
|
* - la respuesta pertenece a esa pregunta
|
||||||
* - el usuario no ha respondido ya esa pregunta
|
* - el usuario no ha respondido ya esa pregunta
|
||||||
*/
|
*/
|
||||||
public static function registrarRespuesta($idPartida, $idUsuario, $idPartidaxPregunta, $idRespuesta)
|
public static function registrarRespuesta(
|
||||||
|
$idPartida,
|
||||||
|
$idUsuario,
|
||||||
|
$idPartidaxPregunta,
|
||||||
|
$idRespuesta,
|
||||||
|
$tiempoRespuesta
|
||||||
|
)
|
||||||
{
|
{
|
||||||
$conexion = conexionBD();
|
$conexion = conexionBD();
|
||||||
if (is_array($conexion)) {
|
if (is_array($conexion)) {
|
||||||
@@ -298,7 +304,8 @@ class Juego
|
|||||||
null,
|
null,
|
||||||
$idPartidaxPregunta,
|
$idPartidaxPregunta,
|
||||||
$idUsuario,
|
$idUsuario,
|
||||||
$idRespuesta
|
$idRespuesta,
|
||||||
|
$tiempoRespuesta
|
||||||
);
|
);
|
||||||
$guardado = $almacenada->guardarRespuesta();
|
$guardado = $almacenada->guardarRespuesta();
|
||||||
|
|
||||||
|
|||||||
@@ -24,6 +24,8 @@ class Respuesta{
|
|||||||
$consulta->bindParam(':idPregunta', $this->idPregunta);
|
$consulta->bindParam(':idPregunta', $this->idPregunta);
|
||||||
$consulta->bindParam(':nombreRespuesta', $this->nombreRespuesta);
|
$consulta->bindParam(':nombreRespuesta', $this->nombreRespuesta);
|
||||||
$consulta->bindParam(':correcta', $this->correcta);
|
$consulta->bindParam(':correcta', $this->correcta);
|
||||||
|
|
||||||
|
|
||||||
$consulta->execute();
|
$consulta->execute();
|
||||||
$respuesta = [
|
$respuesta = [
|
||||||
'exito' => 'La respuesta se guardó correctamente.',
|
'exito' => 'La respuesta se guardó correctamente.',
|
||||||
|
|||||||
@@ -7,43 +7,53 @@ class RespuestaAlmacenada {
|
|||||||
public $idPartidaxPregunta;
|
public $idPartidaxPregunta;
|
||||||
public $idUsuario;
|
public $idUsuario;
|
||||||
public $idRespuesta;
|
public $idRespuesta;
|
||||||
|
public $tiempoRespuesta;
|
||||||
|
|
||||||
public function __construct($idRespuestaAlmacenada = null, $idPartidaxPregunta = null, $idUsuario = null, $idRespuesta = null) {
|
public function __construct($idRespuestaAlmacenada = null, $idPartidaxPregunta = null, $idUsuario = null, $idRespuesta = null, $tiempoRespuesta = null) {
|
||||||
$this->idRespuestaAlmacenada = $idRespuestaAlmacenada;
|
$this->idRespuestaAlmacenada = $idRespuestaAlmacenada;
|
||||||
$this->idPartidaxPregunta = $idPartidaxPregunta;
|
$this->idPartidaxPregunta = $idPartidaxPregunta;
|
||||||
$this->idUsuario = $idUsuario;
|
$this->idUsuario = $idUsuario;
|
||||||
$this->idRespuesta = $idRespuesta;
|
$this->idRespuesta = $idRespuesta;
|
||||||
|
$this->tiempoRespuesta = $tiempoRespuesta;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Guarda la respuesta que ha seleccionado un usuario en una pregunta de la partida.
|
* Guarda la respuesta que ha seleccionado un usuario en una pregunta de la partida.
|
||||||
*/
|
*/
|
||||||
public function guardarRespuesta() {
|
public function guardarRespuesta() {
|
||||||
$conexion = conexionBD();
|
$conexion = conexionBD();
|
||||||
if (is_array($conexion)) return $conexion;
|
|
||||||
|
|
||||||
try {
|
if (is_array($conexion)) {
|
||||||
$sql = "INSERT INTO respuestaalmacenada (idPartidaxPregunta, idUsuario, idRespuesta)
|
return $conexion;
|
||||||
VALUES (:idPartidaxPregunta, :idUsuario, :idRespuesta)";
|
|
||||||
$consulta = $conexion->prepare($sql);
|
|
||||||
|
|
||||||
$consulta->bindParam(':idPartidaxPregunta', $this->idPartidaxPregunta);
|
|
||||||
$consulta->bindParam(':idUsuario', $this->idUsuario);
|
|
||||||
$consulta->bindParam(':idRespuesta', $this->idRespuesta);
|
|
||||||
$consulta->execute();
|
|
||||||
|
|
||||||
return [
|
|
||||||
'exito' => 'Respuesta del usuario almacenada correctamente.',
|
|
||||||
'exito_tecnico' => $conexion->lastInsertId()
|
|
||||||
];
|
|
||||||
} catch (PDOException $error) {
|
|
||||||
return [
|
|
||||||
'error' => 'Ocurrió un error al guardar la respuesta del jugador.',
|
|
||||||
'error_tecnico' => $error->getMessage()
|
|
||||||
];
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
$sql = "INSERT INTO respuestaalmacenada
|
||||||
|
(idPartidaxPregunta, idUsuario, idRespuesta, tiempoRespuesta)
|
||||||
|
VALUES
|
||||||
|
(:idPartidaxPregunta, :idUsuario, :idRespuesta, :tiempoRespuesta)";
|
||||||
|
|
||||||
|
$consulta = $conexion->prepare($sql);
|
||||||
|
|
||||||
|
$consulta->bindParam(':idPartidaxPregunta', $this->idPartidaxPregunta);
|
||||||
|
$consulta->bindParam(':idUsuario', $this->idUsuario);
|
||||||
|
$consulta->bindParam(':idRespuesta', $this->idRespuesta);
|
||||||
|
$consulta->bindParam(':tiempoRespuesta', $this->tiempoRespuesta);
|
||||||
|
|
||||||
|
$consulta->execute();
|
||||||
|
|
||||||
|
return [
|
||||||
|
'exito' => 'Respuesta almacenada correctamente.'
|
||||||
|
];
|
||||||
|
|
||||||
|
} catch (PDOException $error) {
|
||||||
|
return [
|
||||||
|
'error' => 'Ocurrió un error al guardar la respuesta.',
|
||||||
|
'error_tecnico' => $error->getMessage()
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Obtiene los aciertos totales de un usuario en una partida específica.
|
* Obtiene los aciertos totales de un usuario en una partida específica.
|
||||||
* Útil para calcular las estadísticas individuales al terminar el juego.
|
* Útil para calcular las estadísticas individuales al terminar el juego.
|
||||||
|
|||||||
@@ -74,34 +74,47 @@ switch ($orden) {
|
|||||||
|
|
||||||
case 'responder':
|
case 'responder':
|
||||||
|
|
||||||
if (!isset($_POST['idPartidaxPregunta']) || !isset($_POST['idRespuesta'])){
|
if (
|
||||||
echo json_encode([
|
!isset($_POST['idPartidaxPregunta']) ||
|
||||||
'error' => 'Faltan datos para registrar la respuesta.'
|
!isset($_POST['idRespuesta']) ||
|
||||||
]);
|
!isset($_POST['tiempoRespuesta'])
|
||||||
|
) {
|
||||||
|
echo json_encode([
|
||||||
|
'error' => 'Faltan datos para registrar la respuesta.'
|
||||||
|
]);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
$idPartidaxPregunta = intval($_POST['idPartidaxPregunta']);
|
$idPartidaxPregunta = intval($_POST['idPartidaxPregunta']);
|
||||||
|
$idRespuesta = intval($_POST['idRespuesta']);
|
||||||
|
$tiempoRespuesta = intval($_POST['tiempoRespuesta']);
|
||||||
|
|
||||||
$idRespuesta = intval($_POST['idRespuesta']);
|
if (
|
||||||
|
$idPartidaxPregunta <= 0 ||
|
||||||
if ($idPartidaxPregunta <= 0 || $idRespuesta <= 0){
|
$idRespuesta <= 0 ||
|
||||||
|
$tiempoRespuesta < 0
|
||||||
echo json_encode([
|
) {
|
||||||
'error' => 'Los datos de la respuesta no son válidos.'
|
echo json_encode([
|
||||||
]);
|
'error' => 'Los datos de la respuesta no son válidos.'
|
||||||
|
]);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Registramos la respuesta del usuario
|
// Registramos la respuesta del usuario junto con su tiempo de respuesta
|
||||||
|
|
||||||
$resultado = Juego::registrarRespuesta($idPartida, $idUsuario, $idPartidaxPregunta, $idRespuesta);
|
$resultado = Juego::registrarRespuesta(
|
||||||
|
$idPartida,
|
||||||
|
$idUsuario,
|
||||||
|
$idPartidaxPregunta,
|
||||||
|
$idRespuesta,
|
||||||
|
$tiempoRespuesta
|
||||||
|
);
|
||||||
|
|
||||||
echo json_encode($resultado);
|
echo json_encode($resultado);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
// Finalizar la partida y registrar los aciertos del usuario
|
// Finalizar la partida y registrar los aciertos del usuario
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user