1 Commits

Author SHA1 Message Date
jorge 02c109662d Manejo de cookies 2026-09-29 11:26:42 +02:00
26 changed files with 1126 additions and 3637 deletions
+2 -2
View File
@@ -82,8 +82,8 @@
<div class="modal-content modal-kahoot text-center p-3"> <div class="modal-content modal-kahoot text-center p-3">
<div class="modal-body"> <div class="modal-body">
<div class="mb-3 fs-1">⚠️</div> <div class="mb-3 fs-1">⚠️</div>
<h4 class="modal-title mb-2 fw-bold" id="modalAbandonarSalaLabel">¿Abandonar la sala?</h4> <h4 class="modal-title mb-2 fw-bold text-white" id="modalAbandonarSalaLabel">¿Abandonar la sala?</h4>
<p class="text-dark-50">Si sales de la sala, perderás tu lugar en el equipo.</p> <p class="text-white-50">Si sales de la sala, perderás tu lugar en el equipo.</p>
</div> </div>
<div class="modal-footer justify-content-center border-0 gap-2"> <div class="modal-footer justify-content-center border-0 gap-2">
<button type="button" class="btn btn-secondary px-4 py-2" data-bs-dismiss="modal"> <button type="button" class="btn btn-secondary px-4 py-2" data-bs-dismiss="modal">
+8 -9
View File
@@ -21,8 +21,9 @@
<div class="collapse navbar-collapse" id="navbarContent"> <div class="collapse navbar-collapse" id="navbarContent">
<ul class="navbar-nav me-auto mb-2 mb-lg-0"></ul> <ul class="navbar-nav me-auto mb-2 mb-lg-0"></ul>
<!-- Contenedor dinámico cargado por js/cabecera.js --> <!-- Contenedor dinámico de usuario/botones -->
<div class="d-flex align-items-center gap-3" id="contenedorUsuarioCabecera"> <div class="d-flex align-items-center gap-3" id="contenedorUsuarioCabecera">
</div> </div>
</div> </div>
</div> </div>
@@ -48,6 +49,11 @@
<input type="password" class="form-control border-dark" id="loginPassword" name="contrasena" placeholder="Contraseña" required> <input type="password" class="form-control border-dark" id="loginPassword" name="contrasena" placeholder="Contraseña" required>
<label for="loginPassword">Contraseña</label> <label for="loginPassword">Contraseña</label>
</div> </div>
<div class="form-check">
<input class="form-check-input" id="recordar" name="recordar" type="checkbox" />
<label for="recordar" class="small">Recuérdeme durante 10 días</label>
</div>
<input type="hidden" name="orden" value="validar">
</form> </form>
<div id="errorLogin" class="text-danger fw-bold mt-2"></div> <div id="errorLogin" class="text-danger fw-bold mt-2"></div>
</div> </div>
@@ -87,14 +93,7 @@
<input type="password" class="form-control border-dark" id="regPasswordConfirm" name="contrasenaConfirm" placeholder="Confirmar contraseña" required> <input type="password" class="form-control border-dark" id="regPasswordConfirm" name="contrasenaConfirm" placeholder="Confirmar contraseña" required>
<label for="regPasswordConfirm">Confirmar contraseña</label> <label for="regPasswordConfirm">Confirmar contraseña</label>
</div> </div>
<input type="hidden" name="orden" value="registrar">
<!-- Checkbox Recuérdame -->
<div class="form-check mb-3">
<input class="form-check-input border-dark" type="checkbox" value="" id="recuerdameCheck">
<label class="form-check-label fw-semibold" for="recuerdameCheck">
Recuérdame en 10 días
</label>
</div>
</form> </form>
<div id="errorRegistro" class="text-danger fw-bold mt-2"></div> <div id="errorRegistro" class="text-danger fw-bold mt-2"></div>
</div> </div>
+105
View File
@@ -12,6 +12,40 @@ class Categoria{
$this->nombreCategoria = $nombreCategoria; $this->nombreCategoria = $nombreCategoria;
} }
function crear(){
$conexion = conexionBD();
if(is_array($conexion)){
return $conexion;
}else{
try{
$consulta = $conexion->prepare("INSERT INTO categoria (nombreCategoria) VALUES (:nombreCategoria)");
$consulta->bindParam(':nombreCategoria', $this->nombreCategoria);
$consulta->execute();
$respuesta = [
'exito' => 'Categoría creada correctamente',
'exito_tecnico' => $this->nombreCategoria
];
return $respuesta;
}catch(PDOException $error){
$respuesta = [
'error' => 'Ocurrió un error al guardar la categoría.',
'error_tecnico' => $error->getMessage()
];
$conexion = null;
return $respuesta;
}
}
}
function listar(){ function listar(){
$conexion = conexionBD(); $conexion = conexionBD();
@@ -39,6 +73,77 @@ class Categoria{
} }
} }
} }
function buscar(){
$conexion = conexionBD();
if(is_array($conexion)){
return $conexion;
}else{
try{
$consulta = $conexion->prepare("SELECT * FROM categoria WHERE idCategoria = :idCategoria");
$consulta->bindParam(':idCategoria', $this->idCategoria);
$consulta->execute();
$resultado = $consulta->fetch(PDO::FETCH_ASSOC);
return $resultado;
}catch(PDOException $error){
$respuesta = [
'error' => 'Ocurrió un error al buscar la categoría.',
'error_tecnico' => $error->getMessage()
];
$conexion = null;
return $respuesta;
}
}
}
function borrar(){
$conexion = conexionBD();
if(is_array($conexion)){
return $conexion;
}else{
try{
$consulta = $conexion->prepare("DELETE FROM categoria WHERE idCategoria = :idCategoria");
$consulta->bindParam(':idCategoria', $this->idCategoria);
$consulta->execute();
if($consulta->rowCount() > 0){
$respuesta = [
'exito' => 'Se eliminó correctamente la categoría',
'exito_tecnico' => $this->idCategoria
];
}else{
$respuesta = [
'error' => 'No existe ninguna categoría con ese ID.',
'error_tecnico' => $this->idCategoria
];
}
return $respuesta;
}catch(PDOException $error){
$respuesta = [
'error' => 'Ocurrió un error al eliminar la categoría.',
'error_tecnico' => $error->getMessage()
];
$conexion = null;
return $respuesta;
}
}
}
} }
?> ?>
-22
View File
@@ -1,4 +1,3 @@
<?php <?php
require_once __DIR__ . '/../includes/conexionBD.php'; require_once __DIR__ . '/../includes/conexionBD.php';
@@ -467,25 +466,4 @@ class Partida
]; ];
} }
} }
public function contar()
{
$conexion = conexionBD();
if (is_array($conexion)) {
return $conexion;
}
try {
$sql="SELECT COUNT(*) AS total FROM partida";
$consulta = $conexion->prepare($sql);
$consulta->execute();
return (int) $consulta->fetchColumn();
} catch (PDOException $error) {
return [
"error" => "Ocurrió un error al obtener el listado.",
'error_tecnico' => $error->getMessage()
];
}
}
} }
+42 -10
View File
@@ -1,4 +1,3 @@
<?php <?php
require_once __DIR__ . '/../includes/conexionBD.php'; require_once __DIR__ . '/../includes/conexionBD.php';
@@ -57,23 +56,56 @@ class Pregunta {
} }
} }
public function cargarRespuestas() {
if ($this->idPregunta === null) return;
public static function getTodosIds()//devuelve solamente los id de todas las preguntas
{
$conexion = conexionBD(); $conexion = conexionBD();
if (is_array($conexion)) { if (is_array($conexion)) {
return $conexion; return $conexion;
} }
try { try {
$consulta = $conexion->prepare("SELECT idPregunta FROM pregunta"); $sql = "SELECT idRespuesta, nombreRespuesta, correcta FROM respuesta WHERE idPregunta = :idPreg";
$consulta->execute(); $stmt = $conexion->prepare($sql);
return $consulta->fetchAll(PDO::FETCH_COLUMN); $stmt->execute([':idPreg' => $this->idPregunta]);
$this->respuestas = $stmt->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 cargar las respuestas.',
'error_tecnico' => $error->getMessage()
];
}
}
public static function obtenerPorCategoria(int $idCategoria, int $limite = 10) {
$conexion = conexionBD();
if (is_array($conexion)) {
return $conexion;
}
try {
$sql = "SELECT * FROM pregunta WHERE idCategoria = :idCat ORDER BY RAND() LIMIT :limite";
$stmt = $conexion->prepare($sql);
$stmt->bindValue(':idCat', $idCategoria, PDO::PARAM_INT);
$stmt->bindValue(':limite', $limite, PDO::PARAM_INT);
$stmt->execute();
$preguntas = [];
while ($datos = $stmt->fetch(PDO::FETCH_ASSOC)) {
$preg = new Pregunta((int)$datos['idCategoria'], $datos['nombrePregunta'], (int)$datos['idPregunta']);
$preg->cargarRespuestas();
$preguntas[] = $preg;
}
return $preguntas;
} catch (PDOException $error) {
return [
'error' => 'Ocurrió un error al obtener las preguntas aleatorias.',
'error_tecnico' => $error->getMessage() 'error_tecnico' => $error->getMessage()
]; ];
} }
+124
View File
@@ -40,6 +40,130 @@ class Respuesta{
} }
} }
}//fin método insertar }//fin método insertar
public function listar(){
$conexion = conexionBD();
if(is_array($conexion)){
return $conexion;
}else{
try{
$consulta = $conexion->prepare("SELECT * FROM respuesta");
$consulta->execute();
return $consulta->fetchAll(PDO::FETCH_ASSOC);
}catch(PDOException $error){
$respuesta = [
'error' => 'Ocurrió un error al obtener el listado.',
'error_tecnico' => $error->getMessage()
];
$conexion = null;
return $respuesta;
}
}
}//fin método listar
public function eliminar(){
$conexion = conexionBD();
if(is_array($conexion)){
return $conexion;
}else{
try{
$consulta = $conexion->prepare("DELETE FROM respuesta WHERE idRespuesta=:idRespuesta");
$consulta->bindParam(':idRespuesta', $this->idRespuesta);
$consulta->execute();
$respuesta = [
'exito' => 'La respuesta se eliminó correctamente.',
'exito_tecnico' => $this->idRespuesta
];
return $respuesta;
}catch(PDOException $error){
$respuesta = [
'error' => 'No se pudo eliminar la respuesta.',
'error_tecnico' => $error->getMessage()
];
$conexion = null;
return $respuesta;
}
}
}//fin método eliminar
public function editar(){
$conexion = conexionBD();
if(is_array($conexion)){
return $conexion;
}else{
try{
$consulta = $conexion->prepare("UPDATE respuesta SET idPregunta=:idPregunta, nombreRespuesta=:nombreRespuesta, correcta=:correcta WHERE idRespuesta=:idRespuesta");
$consulta->bindParam(':idRespuesta', $this->idRespuesta);
$consulta->bindParam(':idPregunta', $this->idPregunta);
$consulta->bindParam(':nombreRespuesta', $this->nombreRespuesta);
$consulta->bindParam(':correcta', $this->correcta);
$consulta->execute();
$respuesta = [
'exito' => 'La respuesta se editó correctamente.',
'exito_tecnico' => $this->idRespuesta
];
return $respuesta;
}catch(PDOException $error){
$respuesta = [
'error' => 'Ocurrió un error al editar la respuesta.',
'error_tecnico' => $error->getMessage()
];
$conexion = null;
return $respuesta;
}
}
}//fin método editar
public function buscar(){
$conexion = conexionBD();
if(is_array($conexion)){
return $conexion;
}else{
try{
$consulta = $conexion->prepare("SELECT * FROM respuesta WHERE idRespuesta=:idRespuesta");
$consulta->bindParam(':idRespuesta', $this->idRespuesta);
$consulta->execute();
return $consulta->fetchAll(PDO::FETCH_ASSOC);
}catch(PDOException $error){
$respuesta = [
'error' => 'Ocurrió un error al buscar la respuesta.',
'error_tecnico' => $error->getMessage()
];
$conexion = null;
return $respuesta;
}
}
}//fin método buscar
public function listarPorPregunta(){//trae todas las respuestas posibles de una pregunta
$conexion = conexionBD();
if(is_array($conexion)){
return $conexion;
}else{
try{
$consulta = $conexion->prepare("SELECT * FROM respuesta WHERE idPregunta=:idPregunta");
$consulta->bindParam(':idPregunta', $this->idPregunta);
$consulta->execute();
$resultado = $consulta->fetchAll(PDO::FETCH_ASSOC);
if(!isset($resultado[0])){
$respuesta = [
'error' => 'La pregunta no tiene respuestas.'
];
return $respuesta;
}else{
return $resultado;
}
}catch(PDOException $error){
$respuesta = [
'error' => 'Ocurrió un error al obtener las respuestas de la pregunta.',
'error_tecnico' => $error->getMessage()
];
$conexion = null;
return $respuesta;
}
}
}//fin método listarPorPregunta
}//fin clase }//fin clase
?> ?>
+57 -2
View File
@@ -269,6 +269,60 @@ class Usuario
return null; return null;
} }
// Cookies
public static function guardarCookieToken($idUsuario, $token)
{
$conexion = conexionBD();
if (is_array($conexion)) return false;
try {
$sql = "UPDATE usuario SET cookie = :token WHERE idUsuario = :id";
$stmt = $conexion->prepare($sql);
return $stmt->execute([
':token' => $token,
':id' => $idUsuario
]);
} catch (PDOException $e) {
return false;
}
}
public static function buscarPorCookie($token)
{
if (empty($token)) return null;
$conexion = conexionBD();
if (is_array($conexion)) return null;
try {
$sql = "SELECT * FROM usuario WHERE cookie = :token AND cookie IS NOT NULL";
$stmt = $conexion->prepare($sql);
$stmt->execute([':token' => $token]);
$datos = $stmt->fetch(PDO::FETCH_ASSOC);
if ($datos) {
return new Usuario(
$datos['nombreUsuario'],
$datos['contrasena'],
$datos['email'],
$datos['avatar'],
$datos['cookie'],
(int)$datos['aciertos'],
(int)$datos['victorias'],
(int)$datos['derrotas'],
(int)$datos['idUsuario']
);
}
return null;
} catch (PDOException $e) {
return null;
}
}
public function cambiarNombre($nuevoNombre) public function cambiarNombre($nuevoNombre)
{ {
$conexion = conexionBD(); $conexion = conexionBD();
@@ -384,7 +438,8 @@ class Usuario
} }
} }
public static function obtenerRanking($limite = 10) { public static function obtenerRanking($limite = 10)
{
try { try {
$conexion = conexionBD(); $conexion = conexionBD();
@@ -415,5 +470,5 @@ class Usuario
} catch (PDOException $e) { } catch (PDOException $e) {
return []; return [];
} }
} }
} }
+39
View File
@@ -6,6 +6,22 @@ require_once '../clases/ClaseCategoria.php';
switch ($_POST['orden']) { switch ($_POST['orden']) {
case 'crearCategoria':
$nombreCategoria = trim($_POST['nombreCategoria'] ?? '');
if ($nombreCategoria == '') {
echo json_encode(['error' => 'El nombre de la categoría es obligatorio']);
break;
}
$categoria = new Categoria(null, $nombreCategoria);
$resultado = $categoria->crear();
echo json_encode($resultado);
break;
case 'listarCategorias': case 'listarCategorias':
$categoria = new Categoria(); $categoria = new Categoria();
@@ -13,4 +29,27 @@ switch ($_POST['orden']) {
echo json_encode($resultado); echo json_encode($resultado);
break; break;
case 'buscarCategoria':
$idCategoria = intval($_POST['idCategoria'] ?? 0);
$categoria = new Categoria($idCategoria);
$resultado = $categoria->buscar();
echo json_encode($resultado);
break;
case 'borrarCategoria':
$idCategoria = intval($_POST['idCategoria'] ?? 0);
$categoria = new Categoria($idCategoria);
$resultado = $categoria->borrar();
echo json_encode($resultado);
break;
} }
+55
View File
@@ -0,0 +1,55 @@
<?php
session_start();
require_once '../clases/ClaseEquipo.php';
switch ($_POST['orden']) {
case 'crearEquipo':
$nombreEquipo = trim($_POST['nombreEquipo'] ?? '');
if ($nombreEquipo == '') {
echo json_encode(['error' => 'El nombre del equipo es obligatorio']);
break;
}
$equipo = new Equipo(null, $nombreEquipo);
$resultado = $equipo->crear();
echo json_encode($resultado);
break;
case 'listarEquipos':
$equipo = new Equipo();
$resultado = $equipo->listar();
echo json_encode($resultado);
break;
case 'buscarEquipo':
$idEquipo = intval($_POST['idEquipo'] ?? 0);
$equipo = new Equipo($idEquipo);
$resultado = $equipo->buscar();
echo json_encode($resultado);
break;
case 'borrarEquipo':
$idEquipo = intval($_POST['idEquipo'] ?? 0);
$equipo = new Equipo($idEquipo);
$resultado = $equipo->borrar();
echo json_encode($resultado);
break;
}
+1 -39
View File
@@ -6,7 +6,6 @@ require_once '../clases/ClasePartida.php';
require_once '../clases/ClaseEquipo.php'; require_once '../clases/ClaseEquipo.php';
require_once '../clases/ClaseEquipoxUsuario.php'; require_once '../clases/ClaseEquipoxUsuario.php';
require_once '../clases/ClaseEquipoxPartida.php'; require_once '../clases/ClaseEquipoxPartida.php';
require_once '../clases/ClasePregunta.php';
switch ($_POST['orden']) { switch ($_POST['orden']) {
@@ -120,7 +119,6 @@ switch ($_POST['orden']) {
} }
$idPartida = (int)$resultadoPartida['exito_tecnico']; $idPartida = (int)$resultadoPartida['exito_tecnico'];
$partida->idPartida = $idPartida;
/* /*
@@ -213,42 +211,6 @@ switch ($_POST['orden']) {
} }
/*
* ==========================================
* 5. ASIGNAMOS 10 PREGUNTAS ALEATORIAS A LA PARTIDA
* ==========================================
*/
// Obtenemos todos los IDs de las preguntas
$listaPreguntas = Pregunta::getTodosIds();
$totalPreguntas = count($listaPreguntas);
// Guardamos las preguntas que ya hemos asignado
$preguntasAsignadas = [];
// Generamos 10 posiciones aleatorias sin repetir
while (count($preguntasAsignadas) < 10) {
// Generamos una posición aleatoria del array
$posicionAleatoria = rand(0, $totalPreguntas - 1);
// Obtenemos el ID real de la pregunta
$idPreguntaAleatoria = $listaPreguntas[$posicionAleatoria];
// Comprobamos que esa pregunta no haya sido asignada ya
if (!in_array($idPreguntaAleatoria, $preguntasAsignadas)) {
$preguntasAsignadas[] = $idPreguntaAleatoria;
// Asignamos el ID real de la pregunta a la partida
$partida->asignarPregunta($idPreguntaAleatoria);
}
}//fin shile
/* /*
* ========================================== * ==========================================
* TODO CORRECTO * TODO CORRECTO
@@ -256,7 +218,7 @@ switch ($_POST['orden']) {
*/ */
echo json_encode([ echo json_encode([
'exito' => 'Sala creada correctamente. Preguntas preparadas.', 'exito' => 'Sala creada correctamente.',
'idPartida' => $resultadoPartida['exito_tecnico'], 'idPartida' => $resultadoPartida['exito_tecnico'],
'idEquipo1' => $equipo1->idEquipo, 'idEquipo1' => $equipo1->idEquipo,
'idEquipo2' => $equipo2->idEquipo 'idEquipo2' => $equipo2->idEquipo
+29
View File
@@ -121,4 +121,33 @@ switch ($_POST['orden']) {
]); ]);
break; break;
case 'obtenerPreguntasPorCategoria':
$idCategoria = intval($_POST['idCategoria'] ?? 0);
$limite = intval($_POST['limite'] ?? 10);
$preguntas = Pregunta::obtenerPorCategoria($idCategoria, $limite);
// Si ha devuelto un array de errores (formato ['error'=>...]) lo mandamos tal cual
if (isset($preguntas['error'])) {
echo json_encode($preguntas);
break;
}
// Convertimos cada objeto Pregunta en un array simple para poder mandarlo en JSON
$listado = [];
foreach ($preguntas as $p) {
$listado[] = [
'idPregunta' => $p->getIdPregunta(),
'idCategoria' => $p->getIdCategoria(),
'nombrePregunta' => $p->getNombrePregunta(),
'respuestas' => $p->getRespuestas()
];
}
echo json_encode($listado);
break;
} }
+71
View File
@@ -0,0 +1,71 @@
<?php
session_start();
require_once '../clases/ClaseRespuesta.php';
switch ($_POST['orden']) {
case 'crearRespuesta':
$idPregunta = intval($_POST['idPregunta'] ?? 0);
$nombreRespuesta = trim($_POST['nombreRespuesta'] ?? '');
$correcta = intval($_POST['correcta'] ?? 0);
if ($idPregunta <= 0 || $nombreRespuesta == '') {
echo json_encode(['error' => 'La pregunta y el texto de la respuesta son obligatorios']);
break;
}
$respuesta = new Respuesta(null, $idPregunta, $nombreRespuesta, $correcta);
$resultado = $respuesta->insertar();
echo json_encode($resultado);
break;
case 'listarRespuestas':
$respuesta = new Respuesta();
$resultado = $respuesta->listar();
echo json_encode($resultado);
break;
case 'listarRespuestasPorPregunta':
$idPregunta = intval($_POST['idPregunta'] ?? 0);
$respuesta = new Respuesta(null, $idPregunta);
$resultado = $respuesta->listarPorPregunta();
echo json_encode($resultado);
break;
case 'editarRespuesta':
$idRespuesta = intval($_POST['idRespuesta'] ?? 0);
$idPregunta = intval($_POST['idPregunta'] ?? 0);
$nombreRespuesta = trim($_POST['nombreRespuesta'] ?? '');
$correcta = intval($_POST['correcta'] ?? 0);
$respuesta = new Respuesta($idRespuesta, $idPregunta, $nombreRespuesta, $correcta);
$resultado = $respuesta->editar();
echo json_encode($resultado);
break;
case 'borrarRespuesta':
$idRespuesta = intval($_POST['idRespuesta'] ?? 0);
$respuesta = new Respuesta($idRespuesta);
$resultado = $respuesta->eliminar();
echo json_encode($resultado);
break;
}
+60 -6
View File
@@ -50,22 +50,37 @@ switch ($_POST['orden']) {
$email = trim($_POST['email'] ?? ''); $email = trim($_POST['email'] ?? '');
$contrasena = $_POST['contrasena'] ?? ''; $contrasena = $_POST['contrasena'] ?? '';
$recuerdame = isset($_POST['recuerdame']) && ($_POST['recuerdame'] === 'true' || $_POST['recuerdame'] === true);
$resultado = Usuario::login($email, $contrasena); $resultado = Usuario::login($email, $contrasena);
if ($resultado instanceof Usuario) { if ($resultado instanceof Usuario) {
// === GUARDAR EN SESIÓN (incluido avatar)=== // Guardamos la sesión
$_SESSION['idUsuario'] = $resultado->getIdUsuario(); $_SESSION['idUsuario'] = $resultado->getIdUsuario();
$_SESSION['nombreUsuario'] = $resultado->getNombreUsuario(); $_SESSION['nombreUsuario'] = $resultado->getNombreUsuario();
$_SESSION['email'] = $resultado->getEmail(); $_SESSION['email'] = $resultado->getEmail();
$_SESSION['avatar'] = $resultado->getAvatar(); $_SESSION['avatar'] = $resultado->getAvatar();
// =================================================
// Si ha marcado "Recuérdame durante 10 días"
if ($recuerdame) {
$token = bin2hex(random_bytes(32)); // Token único de 64 caracteres
$duracion = time() + (10 * 24 * 60 * 60); // 10 días
setcookie('recuerdame_token', $token, $duracion, "/");
Usuario::guardarCookieToken($resultado->getIdUsuario(), $token);
} else {
// Si entra sin marcar recuérdame, limpiamos la cookie
if (isset($_COOKIE['recuerdame_token'])) {
setcookie('recuerdame_token', '', time() - 3600, "/");
}
Usuario::guardarCookieToken($resultado->getIdUsuario(), null);
}
echo json_encode([ echo json_encode([
'exito' => 'Login correcto', 'exito' => 'Login correcto',
'idUsuario' => $resultado->getIdUsuario(), 'idUsuario' => $resultado->getIdUsuario(),
'nombreUsuario' => $resultado->getNombreUsuario() 'nombreUsuario' => $resultado->getNombreUsuario(),
'avatar' => $resultado->getAvatar()
]); ]);
} else { } else {
@@ -77,9 +92,18 @@ switch ($_POST['orden']) {
break; break;
case 'cerrarSesion': case 'cerrarSesion':
// Si el usuario tenía token en la BD, lo eliminamos
if (isset($_SESSION['idUsuario'])) {
Usuario::guardarCookieToken($_SESSION['idUsuario'], null);
}
// Borramos la cookie del navegador
if (isset($_COOKIE['recuerdame_token'])) {
setcookie('recuerdame_token', '', time() - 3600, "/");
}
// Limpiamos las variables de sesión // Limpiamos las variables de sesión
unset($_SESSION['idUsuario']); unset($_SESSION['idUsuario']);
unset($_SESSION['email']); unset($_SESSION['email']);
@@ -94,6 +118,7 @@ switch ($_POST['orden']) {
]); ]);
break; break;
case 'mostrarEstadisticas': case 'mostrarEstadisticas':
$usuario = Usuario::buscarPorId($_SESSION['idUsuario']); $usuario = Usuario::buscarPorId($_SESSION['idUsuario']);
@@ -238,6 +263,9 @@ switch ($_POST['orden']) {
break; break;
case 'comprobarSesion': case 'comprobarSesion':
//Si hay sesión:
if (isset($_SESSION['idUsuario']) && !empty($_SESSION['idUsuario'])) { if (isset($_SESSION['idUsuario']) && !empty($_SESSION['idUsuario'])) {
echo json_encode([ echo json_encode([
'activa' => true, 'activa' => true,
@@ -247,8 +275,34 @@ switch ($_POST['orden']) {
'avatar' => $_SESSION['avatar'] ?? '' 'avatar' => $_SESSION['avatar'] ?? ''
] ]
]); ]);
} else { break;
echo json_encode(['activa' => false]);
} }
// Si no hay sesión, comprobamos si hay cookie:
if (isset($_COOKIE['recuerdame_token'])) {
$usuarioCookie = Usuario::buscarPorCookie($_COOKIE['recuerdame_token']);
if ($usuarioCookie instanceof Usuario) {
$_SESSION['idUsuario'] = $usuarioCookie->getIdUsuario();
$_SESSION['email'] = $usuarioCookie->getEmail();
$_SESSION['nombreUsuario'] = $usuarioCookie->getNombreUsuario();
$_SESSION['avatar'] = $usuarioCookie->getAvatar();
echo json_encode([
'activa' => true,
'usuario' => [
'idUsuario' => $usuarioCookie->getIdUsuario(),
'nombreUsuario' => $usuarioCookie->getNombreUsuario(),
'avatar' => $usuarioCookie->getAvatar()
]
]);
break;
}
}
//No hay sesión ni hay cookie:
echo json_encode(['activa' => false]);
break; break;
} }
+2 -10
View File
@@ -68,8 +68,8 @@
.btn-unirse { .btn-unirse {
border: none; border: none;
border-bottom: 3px solid #1f6f09; border-bottom: 3px solid #0c4891;
background-color: #26890c; background-color: var(--kahoot-blue);
color: white; color: white;
font-weight: 600; font-weight: 600;
border-radius: 8px; border-radius: 8px;
@@ -105,11 +105,3 @@
border-color: var(--kahoot-purple); border-color: var(--kahoot-purple);
box-shadow: 0 0 0 3px rgba(70, 23, 143, 0.15); box-shadow: 0 0 0 3px rgba(70, 23, 143, 0.15);
} }
.jugador-host {
background-color: #fff3cd;
border: 1px solid #ffc107;
border-radius: 8px;
padding: 6px 10px;
font-weight: 600;
}
Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.9 KiB

+6 -3
View File
@@ -1,3 +1,7 @@
<?php
include 'cabecera.php';
?>
<!DOCTYPE html> <!DOCTYPE html>
<html lang="es-ES"> <html lang="es-ES">
@@ -5,17 +9,16 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Triviagmático</title> <title>Triviagmático</title>
<script src="js/jquery-4.0.0.min.js"></script>
<link rel="icon" type="image/svg+xml" href="img/favicon/favicon.svg"> <link rel="icon" type="image/svg+xml" href="img/favicon/favicon.svg">
</head> </head>
<body> <body>
<?php include 'cabecera.php'; ?>
<div class="container my-5"> <div class="container my-5">
<div class="row justify-content-center align-items-center g-4"> <div class="row justify-content-center align-items-center g-4">
<!-- Botón Jugar (oculto por defecto, JS lo muestra si hay sesión activa) --> <!-- Botón Jugar (oculto por defecto, JS lo muestra si hay sesión) -->
<div class="col-12 col-lg-5 col-xl-4 d-none" id="colBotonJugar"> <div class="col-12 col-lg-5 col-xl-4 d-none" id="colBotonJugar">
<a href="buscadorSala.php" class="btn btn-play-kahoot" id="btnJugar"> <a href="buscadorSala.php" class="btn btn-play-kahoot" id="btnJugar">
<i class="fa-solid fa-play"></i> <i class="fa-solid fa-play"></i>
+11 -42
View File
@@ -123,23 +123,11 @@ function mostrarSala(partida, equipos, jugadores) {
let jugadoresHTML = ""; let jugadoresHTML = "";
if (jugadoresEquipo.length > 0) { if (jugadoresEquipo.length > 0) {
jugadoresEquipo.forEach(function (jugador) { jugadoresEquipo.forEach(function (jugador) {
const esHost = jugador.idUsuario == partida.idUsuario;
jugadoresHTML += ` jugadoresHTML += `
<div class="jugador border border-2 d-flex align-items-center justify-content-between ${ <div class="jugador">
esHost ? "jugador-host" : "" <span class="avatar">👤</span>
}">
<div>
<span class="avatar">${esHost ? "👑" : "👤"}</span>
${escapeHTML(jugador.nombreUsuario)} ${escapeHTML(jugador.nombreUsuario)}
</div> </div>
${
esHost
? `<span class="badge bg-warning text-dark ms-2">HOST</span>`
: ""
}
</div>
`; `;
}); });
} else { } else {
@@ -150,7 +138,7 @@ function mostrarSala(partida, equipos, jugadores) {
let botonUnirseHTML = ""; let botonUnirseHTML = "";
if (!usuarioYaEstaEnEquipo) { if (!usuarioYaEstaEnEquipo) {
botonUnirseHTML = ` botonUnirseHTML = `
<button type="button" class="btn-unirse w-100 btn-unirse-equipo mt-2" <button type="button" class="btn btn-unirse w-100 btn-unirse-equipo mt-2"
data-id-partida="${partida.idPartida}" data-id-partida="${partida.idPartida}"
data-id-equipo="${equipo.idEquipo}"> data-id-equipo="${equipo.idEquipo}">
Unirse Unirse
@@ -169,34 +157,17 @@ function mostrarSala(partida, equipos, jugadores) {
`; `;
}); });
// Acciones disponibles si el usuario YA ESTÁ dentro de esta sala
// Acciones disponibles si el usuario YA ESTÁ dentro de esta sala // Acciones disponibles si el usuario YA ESTÁ dentro de esta sala
let accionesSalaHTML = ""; let accionesSalaHTML = "";
if (usuarioYaEstaEnEquipo) { if (usuarioYaEstaEnEquipo) {
let botonIniciarHTML = "";
// Solo el host puede iniciar la partida
if (partida.idUsuario == idUsuarioSesion) {
botonIniciarHTML = `
<a href="juego.php?idPartida=${partida.idPartida}"
class="btn btn-success btn-lg px-4">
🎮 ¡Iniciar Partida!
</a>
`;
}
accionesSalaHTML = ` accionesSalaHTML = `
<div class="sala-acciones text-center mt-4 pt-3 border-top d-flex justify-content-center gap-3"> <div class="sala-acciones text-center mt-4 pt-3 border-top d-flex justify-content-center gap-3">
<button type="button" class="btn btn-outline-danger btn-abandonar-sala" data-id-partida="${partida.idPartida}">
<button type="button"
class="btn btn-outline-danger btn-abandonar-sala"
data-id-partida="${partida.idPartida}">
Abandonar sala Abandonar sala
</button> </button>
<a href="juego.php?idPartida=${partida.idPartida}" class="btn btn-success btn-lg px-4">
${botonIniciarHTML} 🎮 ¡Iniciar Partida!
</a>
</div> </div>
`; `;
} }
@@ -204,7 +175,7 @@ function mostrarSala(partida, equipos, jugadores) {
const salaHTML = ` const salaHTML = `
<div class="col-12 col-md-10 col-lg-8"> <div class="col-12 col-md-10 col-lg-8">
<div class="sala card p-3 shadow-sm mb-4"> <div class="sala card p-3 shadow-sm mb-4">
<div class="sala-header h4 text-center mb-3 text-white"> <div class="sala-header h4 text-center mb-3">
${escapeHTML(partida.nombrePartida)} ${escapeHTML(partida.nombrePartida)}
</div> </div>
<div class="sala-body"> <div class="sala-body">
@@ -263,15 +234,13 @@ let botonAbandonarReferencia = null;
// A. Al hacer clic en el botón "Abandonar sala" de la tarjeta, abrimos el modal // A. Al hacer clic en el botón "Abandonar sala" de la tarjeta, abrimos el modal
$(document).on("click", ".btn-abandonar-sala", function () { $(document).on("click", ".btn-abandonar-sala", function () {
botonAbandonarReferencia = $(this); botonAbandonarReferencia = $(this);
const modal = new bootstrap.Modal( const modal = new bootstrap.Modal(document.getElementById('modalAbandonarSala'));
document.getElementById("modalAbandonarSala"),
);
modal.show(); modal.show();
}); });
// B. Al hacer clic en "Sí, salir" dentro del modal Kahoot // B. Al hacer clic en "Sí, salir" dentro del modal Kahoot
$(document).on("click", "#btnConfirmarAbandonar", function () { $(document).on("click", "#btnConfirmarAbandonar", function () {
const modalEl = document.getElementById("modalAbandonarSala"); const modalEl = document.getElementById('modalAbandonarSala');
const modalInstance = bootstrap.Modal.getInstance(modalEl); const modalInstance = bootstrap.Modal.getInstance(modalEl);
const btnConfirmar = $(this); const btnConfirmar = $(this);
@@ -306,7 +275,7 @@ $(document).on("click", "#btnConfirmarAbandonar", function () {
if (modalInstance) { if (modalInstance) {
modalInstance.hide(); modalInstance.hide();
} }
}, }
}); });
}); });
// 8. Evento: Crear Sala // 8. Evento: Crear Sala
+173 -189
View File
@@ -1,217 +1,201 @@
let idUsuarioSesion = null;
$(document).ready(function () { $(document).ready(function () {
// Comprobar la sesión activa al cargar la página comprobarSesion();
comprobarEstadoSesion();
// Evento Click: Login
$('#botonAceptarLogin').on('click', function () {
ejecutarLogin();
});
// Permitir Submit con tecla Enter en el formulario de Login
$('#formLogin').on('submit', function (e) {
e.preventDefault();
ejecutarLogin();
});
// Evento Click: Registro
$('#botonAceptarRegistro').on('click', function () {
ejecutarRegistro();
});
// Permitir Submit con tecla Enter en el formulario de Registro
$('#formRegistro').on('submit', function (e) {
e.preventDefault();
ejecutarRegistro();
});
}); });
/** // Función auxiliar para escapar texto HTML
* Comprueba con el servidor si existe una sesión PHP function escapeHTML(str) {
*/ return $("<div>")
function comprobarEstadoSesion() { .text(str ?? "")
$.ajax({ .html();
url: 'controladores/controladorUsuario.php',
type: 'POST',
dataType: 'json',
data: { orden: 'comprobarSesion' },
success: function (respuesta) {
if (respuesta.activa) {
idUsuarioSesion = respuesta.usuario.idUsuario;
renderizarCabeceraConSesion(respuesta.usuario);
$('#colBotonJugar').removeClass('d-none');
} else {
renderizarCabeceraSinSesion();
$('#colBotonJugar').addClass('d-none');
}
},
error: function () {
renderizarCabeceraSinSesion();
}
});
} }
/** // Comprobar estado de sesión al cargar la página
* Petición AJAX para iniciar sesión function comprobarSesion() {
*/
function ejecutarLogin() {
let email = $('#loginEmail').val().trim();
let contrasena = $('#loginPassword').val().trim();
$('#errorLogin').text('');
if (email === '' || contrasena === '') {
$('#errorLogin').text('Por favor, rellena todos los campos.');
return;
}
$.ajax({ $.ajax({
url: 'controladores/controladorUsuario.php', method: "POST",
type: 'POST', url: "controladores/controladorUsuario.php",
dataType: 'json', data: { orden: "comprobarSesion" },
data: { }).done(function (respuesta) {
orden: 'comprobarUsuario', try {
email: email, if (typeof respuesta === "string") {
contrasena: contrasena respuesta = JSON.parse(respuesta);
},
success: function (respuesta) {
if (respuesta.error) {
$('#errorLogin').text(respuesta.error);
} else if (respuesta.exito) {
$('#modalLogin').modal('hide');
$('#formLogin')[0].reset();
// Cargar datos de la sesión actualizados
comprobarEstadoSesion();
}
},
error: function () {
$('#errorLogin').text('Error al conectar con el servidor.');
}
});
}
/**
* Petición AJAX para registrar un usuario
*/
function ejecutarRegistro() {
let nombre = $('#regNombre').val().trim();
let email = $('#regEmail').val().trim();
let pass = $('#regPassword').val().trim();
let passConfirm = $('#regPasswordConfirm').val().trim();
$('#errorRegistro').text('');
if (nombre === '' || email === '' || pass === '') {
$('#errorRegistro').text('Todos los campos son obligatorios.');
return;
} }
if (pass !== passConfirm) { const contenedor = $("#contenedorUsuarioCabecera");
$('#errorRegistro').text('Las contraseñas no coinciden.'); contenedor.empty();
return;
}
$.ajax({ if (respuesta.activa && respuesta.usuario) {
url: 'controladores/controladorUsuario.php', // Obtenemos la ruta del avatar o la de por defecto
type: 'POST', const avatarUrl =
dataType: 'json', respuesta.usuario.avatar || "img/avatars/defaultProfile.jpeg";
data: {
orden: 'registrarUsuario',
nombreUsuario: nombre,
email: email,
contrasena: pass
},
success: function (respuesta) {
if (respuesta.error) {
$('#errorRegistro').text(respuesta.error);
} else {
$('#modalRegistro').modal('hide');
$('#formRegistro')[0].reset();
// Autologin tras registrarse // Usuario autenticado: Mostrar Menú Dropdown con el avatar
$('#loginEmail').val(email); const htmlUsuario = `
$('#loginPassword').val(pass);
ejecutarLogin();
}
},
error: function () {
$('#errorRegistro').text('Error al procesar el registro.');
}
});
}
/**
* Petición AJAX para cerrar la sesión
*/
function cerrarSesion() {
$.ajax({
url: 'controladores/controladorUsuario.php',
type: 'POST',
dataType: 'json',
data: { orden: 'cerrarSesion' },
success: function () {
renderizarCabeceraSinSesion();
$('#colBotonJugar').addClass('d-none');
if (window.location.pathname.includes('perfil.php') || window.location.pathname.includes('buscadorSala.php')) {
window.location.href = 'index.php';
}
}
});
}
/**
* Renderiza la cabecera cuando HAY sesión iniciada
*/
function renderizarCabeceraConSesion(usuario) {
//Mete el avatar en cabecera
let avatarImg = (usuario.avatar && usuario.avatar !== '')
? usuario.avatar
: 'img/avatars/defaultProfile.jpeg';
// Refrescar avatar si se cambia
let avatarConCacheBuster = avatarImg + '?v=' + new Date().getTime();
let html = `
<div class="dropdown"> <div class="dropdown">
<button class="btn btn-outline-light dropdown-toggle d-flex align-items-center gap-2 rounded-pill px-3 py-1 fw-bold" type="button" id="userMenu" data-bs-toggle="dropdown" aria-expanded="false"> <button class="btn user-dropdown-btn dropdown-toggle d-flex align-items-center gap-2"
<img src="${avatarConCacheBuster}" alt="Avatar" class="rounded-circle border" style="width: 32px; height: 32px; object-fit: cover;"> type="button" id="userDropdown" data-bs-toggle="dropdown" aria-expanded="false">
<span>${escapeHtml(usuario.nombreUsuario)}</span> <img src="${escapeHTML(avatarUrl)}" alt="Avatar" class="rounded-circle" style="width: 32px; height: 32px; object-fit: cover;">
<span>${escapeHTML(respuesta.usuario.nombreUsuario)}</span>
</button> </button>
<ul class="dropdown-menu dropdown-menu-end shadow border-0 mt-2" aria-labelledby="userMenu"> <ul class="dropdown-menu dropdown-menu-end user-dropdown-menu" aria-labelledby="userDropdown">
<li> <li>
<a class="dropdown-item py-2 fw-semibold" href="perfil.php"> <a class="dropdown-item d-flex align-items-center gap-2" href="perfil.php">
<i class="fa-solid fa-user me-2 text-primary"></i>Mi Perfil <i class="fa-solid fa-user text-primary"></i> Perfil
</a> </a>
</li> </li>
<li><hr class="dropdown-divider"></li> <li><hr class="dropdown-divider"></li>
<li> <li>
<button class="dropdown-item py-2 fw-semibold text-danger" onclick="cerrarSesion()"> <a class="dropdown-item logout-item d-flex align-items-center gap-2" href="#" id="botonCerrarSesion">
<i class="fa-solid fa-right-from-bracket me-2"></i>Cerrar Sesión <i class="fa-solid fa-right-from-bracket"></i> Cerrar Sesión
</button> </a>
</li> </li>
</ul> </ul>
</div> </div>
`; `;
$('#contenedorUsuarioCabecera').html(html); contenedor.html(htmlUsuario);
}
/** // Si estamos en la página principal, mostramos el botón JUGAR
* Renderiza los botones en la cabecera cuando NO hay sesión (Iniciar sesión azul) if ($("#colBotonJugar").length) {
*/ $("#colBotonJugar").removeClass("d-none");
function renderizarCabeceraSinSesion() { $("#colRanking")
let html = ` .removeClass("col-lg-8")
<button class="btn btn-primary rounded-pill px-4 fw-bold shadow-sm" data-bs-toggle="modal" data-bs-target="#modalLogin"> .addClass("col-lg-7 col-xl-8");
<i class="fa-solid fa-right-to-bracket me-1"></i> Iniciar sesión }
} else {
// No hay sesión: Mostrar botones de Login y Registro
const htmlInvitado = `
<button type="button" class="btn btn-kahoot-login rounded-pill px-4" data-bs-toggle="modal" data-bs-target="#modalLogin">
<i class="fa-solid fa-right-to-bracket me-1"></i> Iniciar Sesión
</button> </button>
<button class="btn btn-success rounded-pill px-4 fw-bold shadow-sm" data-bs-toggle="modal" data-bs-target="#modalRegistro"> <button type="button" class="btn btn-kahoot-register rounded-pill px-4" data-bs-toggle="modal" data-bs-target="#modalRegistro">
<i class="fa-solid fa-user-plus me-1"></i> Registrarse <i class="fa-solid fa-user-plus me-1"></i> Registrarse
</button> </button>
`; `;
$('#contenedorUsuarioCabecera').html(html); contenedor.html(htmlInvitado);
// Si estamos en la página principal, ocultamos el botón JUGAR
if ($("#colBotonJugar").length) {
$("#colBotonJugar").addClass("d-none");
$("#colRanking")
.removeClass("col-lg-7 col-xl-8")
.addClass("col-lg-8");
}
}
} catch (e) {
console.error("Error al procesar la respuesta de la sesión:", e);
}
});
} }
function escapeHtml(texto) { // Registro
return $('<div>').text(texto).html(); $("#botonAceptarRegistro").click(function (event) {
} event.preventDefault();
let nombreUsuario = $("#regNombre").val().trim();
let email = $("#regEmail").val().trim();
let contrasena = $("#regPassword").val();
let contrasenaConfirmacion = $("#regPasswordConfirm").val();
$("#regNombre").removeClass("is-invalid");
$("#regEmail").removeClass("is-invalid");
$("#regPassword").removeClass("is-invalid");
$("#regPasswordConfirm").removeClass("is-invalid");
$("#errorRegistro").text("");
if (contrasena !== contrasenaConfirmacion) {
$("#regPassword").addClass("is-invalid");
$("#regPasswordConfirm").addClass("is-invalid");
$("#errorRegistro").text("Las contraseñas no coinciden.");
return;
}
$.ajax({
method: "POST",
url: "controladores/controladorUsuario.php",
data: {
nombreUsuario: nombreUsuario,
email: email,
contrasena: contrasena,
orden: "registrarUsuario",
},
}).done(function (respuesta) {
if (typeof respuesta === "string") respuesta = JSON.parse(respuesta);
if (respuesta.error) {
$("#errorRegistro").text(respuesta.error);
$("#regNombre").addClass("is-invalid");
$("#regEmail").addClass("is-invalid");
} else {
$("#errorRegistro")
.removeClass("text-danger")
.addClass("text-success")
.text(respuesta.exito);
$("#formRegistro")[0].reset();
setTimeout(function () {
location.reload();
}, 1000);
}
});
});
// Login
$("#botonAceptarLogin").click(function (event) {
event.preventDefault();
let email = $("#loginEmail").val().trim();
let contrasena = $("#loginPassword").val();
let recuerdame = $("#recordar").is(":checked");
$("#loginEmail").removeClass("is-invalid");
$("#loginPassword").removeClass("is-invalid");
$("#errorLogin").text("");
if (email === "" || contrasena === "") {
$("#errorLogin").text("Todos los campos son obligatorios.");
if (email === "") $("#loginEmail").addClass("is-invalid");
if (contrasena === "") $("#loginPassword").addClass("is-invalid");
return;
}
$.ajax({
method: "POST",
url: "controladores/controladorUsuario.php",
data: {
email: email,
contrasena: contrasena,
recuerdame: recuerdame,
orden: "comprobarUsuario",
},
}).done(function (respuesta) {
if (typeof respuesta === "string") respuesta = JSON.parse(respuesta);
if (respuesta.error) {
$("#loginEmail").addClass("is-invalid");
$("#loginPassword").addClass("is-invalid");
$("#errorLogin").text(respuesta.error);
} else {
location.reload();
}
});
});
// Cerrar sesión
$(document).on("click", "#botonCerrarSesion", function (event) {
event.preventDefault();
$.ajax({
method: "POST",
url: "controladores/controladorUsuario.php",
data: { orden: "cerrarSesion" },
}).done(function (respuesta) {
if (typeof respuesta === "string") respuesta = JSON.parse(respuesta);
if (respuesta.error) {
console.log(respuesta.error);
} else {
window.location.href = "index.php";
}
});
});
+21 -15
View File
@@ -4,15 +4,15 @@ $(document).ready(function () {
function cargarRanking() { function cargarRanking() {
$.ajax({ $.ajax({
url: 'controladores/controladorUsuario.php', url: "controladores/controladorUsuario.php",
type: 'POST', type: "POST",
data: { orden: 'obtenerRanking' }, data: { orden: "obtenerRanking" },
dataType: 'json', dataType: "json",
success: function (response) { success: function (response) {
if (response.exito && response.ranking.length > 0) { if (response.exito && response.ranking.length > 0) {
renderizarTablaRanking(response.ranking); renderizarTablaRanking(response.ranking);
} else { } else {
$('#ranking-container').html(` $("#ranking-container").html(`
<div class="alert alert-info my-3"> <div class="alert alert-info my-3">
<i class="fa-solid fa-info-circle me-2"></i>Aún no hay partidas registradas para mostrar el ranking. <i class="fa-solid fa-info-circle me-2"></i>Aún no hay partidas registradas para mostrar el ranking.
</div> </div>
@@ -20,12 +20,12 @@ function cargarRanking() {
} }
}, },
error: function () { error: function () {
$('#ranking-container').html(` $("#ranking-container").html(`
<div class="alert alert-danger my-3"> <div class="alert alert-danger my-3">
<i class="fa-solid fa-exclamation-triangle me-2"></i>Error al cargar la clasificación. <i class="fa-solid fa-exclamation-triangle me-2"></i>Error al cargar la clasificación.
</div> </div>
`); `);
} },
}); });
} }
@@ -48,20 +48,25 @@ function renderizarTablaRanking(jugadores) {
jugadores.forEach((jugador, index) => { jugadores.forEach((jugador, index) => {
let posicion = index + 1; let posicion = index + 1;
let medalla = ''; let medalla = "";
// Medallas para el Top 3 // Medallas para el Top 3
if (posicion === 1) { if (posicion === 1) {
medalla = '<i class="fa-solid fa-medal text-warning fa-lg" title="1º Puesto"></i>'; medalla =
'<i class="fa-solid fa-medal text-warning fa-lg" title="1º Puesto"></i>';
} else if (posicion === 2) { } else if (posicion === 2) {
medalla = '<i class="fa-solid fa-medal text-secondary fa-lg" title="2º Puesto"></i>'; medalla =
'<i class="fa-solid fa-medal text-secondary fa-lg" title="2º Puesto"></i>';
} else if (posicion === 3) { } else if (posicion === 3) {
medalla = '<i class="fa-solid fa-medal text-brown fa-lg" style="color: #cd7f32;" title="3º Puesto"></i>'; medalla =
'<i class="fa-solid fa-medal text-brown fa-lg" style="color: #cd7f32;" title="3º Puesto"></i>';
} else { } else {
medalla = `<span class="fw-bold text-muted">${posicion}</span>`; medalla = `<span class="fw-bold text-muted">${posicion}</span>`;
} }
let avatarImg = jugador.avatar ? jugador.avatar : 'img/avatars/defaultProfile.jpeg'; let avatarImg = jugador.avatar
? jugador.avatar
: "img/avatars/defaultProfile.jpeg";
html += ` html += `
<tr> <tr>
@@ -86,10 +91,11 @@ function renderizarTablaRanking(jugadores) {
</div> </div>
`; `;
$('#ranking-container').removeClass('text-center p-4 ranking-placeholder').html(html); $("#ranking-container")
.removeClass("text-center p-4 ranking-placeholder")
.html(html);
} }
function escapeHtml(texto) { function escapeHtml(texto) {
return $('<div>').text(texto).html(); return $("<div>").text(texto).html();
} }
+210
View File
@@ -0,0 +1,210 @@
// ============================================
// DATOS DE PRUEBA
// ============================================
const salas = [
{
id: 1,
nombre: "Sala Principal",
equipos: [
{
id: 1,
nombre: "Equipo 1",
jugadores: [
"Carlos",
"María"
]
},
{
id: 2,
nombre: "Equipo 2",
jugadores: [
"Jorge"
]
}
]
},
{
id: 2,
nombre: "Los Trivialeros",
equipos: [
{
id: 3,
nombre: "Equipo Rojo",
jugadores: [
"Ana",
"Pedro",
"Lucía"
]
},
{
id: 4,
nombre: "Equipo Azul",
jugadores: [
"David",
"Laura"
]
}
]
},
{
id: 3,
nombre: "Partida rápida",
equipos: [
{
id: 5,
nombre: "Equipo 1",
jugadores: [
"Miguel"
]
},
{
id: 6,
nombre: "Equipo 2",
jugadores: []
}
]
},
{
id: 4,
nombre: "Noche de Trivial",
equipos: [
{
id: 7,
nombre: "Los quesitos",
jugadores: [
"Pablo",
"Sara"
]
},
{
id: 8,
nombre: "Los cerebritos",
jugadores: [
"Mario",
"Elena",
"Álvaro"
]
}
]
}
];
// ============================================
// MOSTRAR SALAS
// ============================================
function mostrarSalas(salas) {
const contenedor = document.getElementById("contenedorSalas");
contenedor.innerHTML = "";
salas.forEach(sala => {
const columna = document.createElement("div");
columna.className = "col-12 col-md-6 col-xl-5";
columna.innerHTML = `
<div class="sala">
<div class="sala-header">
${sala.nombre}
</div>
<div class="sala-body">
<div class="equipos">
${crearEquipo(sala, sala.equipos[0])}
${crearEquipo(sala, sala.equipos[1])}
</div>
</div>
</div>
`;
contenedor.appendChild(columna);
});
}
// ============================================
// CREAR EQUIPO
// ============================================
function crearEquipo(sala, equipo) {
let jugadoresHTML = "";
equipo.jugadores.forEach(jugador => {
jugadoresHTML += `
<div class="jugador">
<span class="avatar">👤</span>
${jugador}
</div>
`;
});
return `
<div class="equipo">
<h6>
${equipo.nombre}
</h6>
<div class="jugadores">
${jugadoresHTML}
</div>
<button
type="button"
class="btn btn-unirse"
onclick="unirseEquipo(${sala.id}, ${equipo.id})">
Unirse
</button>
</div>
`;
}
function unirseEquipo(idSala, idEquipo) {
console.log("Sala:", idSala);
console.log("Equipo:", idEquipo);
alert(
"Has pulsado unirse al equipo " +
idEquipo +
" de la sala " +
idSala
);
}
// ============================================
// CARGAR DATOS DE PRUEBA
// ============================================
mostrarSalas(salas);
+27 -20
View File
@@ -26,10 +26,6 @@ $.ajax({
function cambiarNombre() { function cambiarNombre() {
let nuevoNombre = $("#nuevoNombre").val().trim(); let nuevoNombre = $("#nuevoNombre").val().trim();
if (nuevoNombre === "") {
return;
}
$.ajax({ $.ajax({
method: "POST", method: "POST",
url: "controladores/controladorUsuario.php", url: "controladores/controladorUsuario.php",
@@ -46,13 +42,8 @@ function cambiarNombre() {
// Actualizamos el nombre mostrado en la página // Actualizamos el nombre mostrado en la página
$("#nombre").text(respuesta.nombreUsuario); $("#nombre").text(respuesta.nombreUsuario);
// Limpiamos el input
$("#nuevoNombre").val(""); $("#nuevoNombre").val("");
if (typeof comprobarEstadoSesion === "function") {
comprobarEstadoSesion();
}
} }
}); });
} }
@@ -83,11 +74,14 @@ $("#inputFoto").change(function () {
// Comprobamos que sea una imagen // Comprobamos que sea una imagen
if (!archivo.type.startsWith("image/")) { if (!archivo.type.startsWith("image/")) {
alert("El archivo seleccionado no es una imagen."); alert("El archivo seleccionado no es una imagen.");
$("#inputFoto").val(""); $("#inputFoto").val("");
return; return;
} }
let datos = new FormData(); let datos = new FormData();
datos.append("avatar", archivo); datos.append("avatar", archivo);
datos.append("orden", "cambiarAvatar"); datos.append("orden", "cambiarAvatar");
@@ -103,23 +97,18 @@ $("#inputFoto").change(function () {
if (respuesta.error) { if (respuesta.error) {
alert(respuesta.error); alert(respuesta.error);
} else { } else {
// Actualizamos la imagen en la página de perfil sin recargar // Actualizamos la imagen sin recargar la página
$("#fotoPerfil").attr( $("#fotoPerfil").attr(
"src", "src",
respuesta.avatar + "?t=" + new Date().getTime() respuesta.avatar + "?t=" + new Date().getTime(),
); );
// Actualizamos también el avatar superior en la cabecera
if (typeof comprobarEstadoSesion === "function") {
comprobarEstadoSesion();
}
} }
}); });
}); });
// ========================= // =========================
// RECOGER CATEGORIAS // RECOGER CATEGORIAS
// ========================= // ====
$("#modalCrearPregunta").on("show.bs.modal", function () { $("#modalCrearPregunta").on("show.bs.modal", function () {
const selectCategoria = $("#idCategoria"); const selectCategoria = $("#idCategoria");
@@ -152,14 +141,16 @@ $("#modalCrearPregunta").on("show.bs.modal", function () {
$("<option>", { $("<option>", {
value: categoria.idCategoria, value: categoria.idCategoria,
text: categoria.nombreCategoria, text: categoria.nombreCategoria,
}) }),
); );
}); });
}, },
error: function (xhr, status, error) { error: function (xhr, status, error) {
console.error("Error al cargar las categorías:", error); console.error("Error al cargar las categorías:", error);
console.error("Respuesta del servidor:", xhr.responseText); console.error("Respuesta del servidor:", xhr.responseText);
alert("No se han podido cargar las categorías."); alert("No se han podido cargar las categorías.");
}, },
}); });
@@ -167,7 +158,7 @@ $("#modalCrearPregunta").on("show.bs.modal", function () {
// ========================= // =========================
// CREAR PREGUNTA // CREAR PREGUNTA
// ========================= // ====
$("#formCrearPregunta").on("submit", function (e) { $("#formCrearPregunta").on("submit", function (e) {
e.preventDefault(); e.preventDefault();
@@ -197,15 +188,24 @@ $("#formCrearPregunta").on("submit", function (e) {
$.ajax({ $.ajax({
url: "controladores/controladorPregunta.php", url: "controladores/controladorPregunta.php",
type: "POST", type: "POST",
dataType: "json", dataType: "json",
data: { data: {
orden: "crearPregunta", orden: "crearPregunta",
idCategoria: $("#idCategoria").val(), idCategoria: $("#idCategoria").val(),
nombrePregunta: pregunta, nombrePregunta: pregunta,
respuestaCorrecta: respuestaCorrecta, respuestaCorrecta: respuestaCorrecta,
respuestaIncorrecta1: respuestaIncorrecta1, respuestaIncorrecta1: respuestaIncorrecta1,
respuestaIncorrecta2: respuestaIncorrecta2, respuestaIncorrecta2: respuestaIncorrecta2,
respuestaIncorrecta3: respuestaIncorrecta3, respuestaIncorrecta3: respuestaIncorrecta3,
}, },
@@ -214,8 +214,10 @@ $("#formCrearPregunta").on("submit", function (e) {
if (respuesta.error) { if (respuesta.error) {
alert(respuesta.error); alert(respuesta.error);
boton.prop("disabled", false); boton.prop("disabled", false);
boton.text("Crear pregunta"); boton.text("Crear pregunta");
return; return;
} }
@@ -231,12 +233,17 @@ $("#formCrearPregunta").on("submit", function (e) {
// Volvemos a activar el botón // Volvemos a activar el botón
boton.prop("disabled", false); boton.prop("disabled", false);
boton.text("Crear pregunta"); boton.text("Crear pregunta");
// Si tienes que actualizar la lista de preguntas:
// cargarPreguntas();
} }
}, },
error: function (xhr, status, error) { error: function (xhr, status, error) {
console.error("Error al crear la pregunta:", error); console.error("Error al crear la pregunta:", error);
console.error("Respuesta del servidor:", xhr.responseText); console.error("Respuesta del servidor:", xhr.responseText);
alert("No se ha podido crear la pregunta."); alert("No se ha podido crear la pregunta.");
boton.prop("disabled", false); boton.prop("disabled", false);
-471
View File
@@ -1,471 +0,0 @@
-- phpMyAdmin SQL Dump
-- version 5.2.3
-- https://www.phpmyadmin.net/
--
-- Host: localhost:3307
-- Generation Time: Sep 18, 2026 at 11:39 AM
-- Server version: 8.4.3
-- PHP Version: 8.3.30
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
START TRANSACTION;
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
--
-- Database: `trivial`
--
-- --------------------------------------------------------
--
-- Table structure for table `preguntas`
--
CREATE TABLE `pregunta` (
`idPregunta` int NOT NULL,
`idCategoria` int DEFAULT NULL,
`nombrePregunta` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
--
-- Dumping data for table `preguntas`
--
INSERT INTO `pregunta` (`idPregunta`, `idCategoria`, `nombrePregunta`) VALUES
(2140, 1, 4, '¿En qué año llegó Cristóbal Colón a América?'),
(2141, 1, 5, '¿Cuál es la capital de Francia?'),
(2142, 1, 6, '¿Qué planeta es conocido como el planeta rojo?'),
(2143, 1, 7, '¿Quién pintó la Mona Lisa?'),
(2144, 1, 5, '¿Cuál es el océano más grande del planeta?'),
(2145, 1, 6, '¿Cuál es el símbolo químico del oro?'),
(2146, 1, 8, '¿Quién escribió Don Quijote de la Mancha?'),
(2147, 1, 9, '¿Cuántos jugadores tiene un equipo de fútbol en el campo?'),
(2148, 1, 10, '¿Cuál es la estrella más cercana a la Tierra?'),
(2149, 1, 11, '¿Cuál es el animal terrestre más grande?'),
(2150, 2, 4, '¿Quién fue el primer emperador romano?'),
(2151, 1, 5, '¿Cuál es la capital de España?'),
(2152, 1, 6, '¿Qué gas es imprescindible para la respiración humana?'),
(2153, 1, 12, '¿Cómo se llama el protagonista de la saga cinematográfica Indiana Jones?'),
(2154, 1, 13, '¿Qué instrumento musical tiene teclas blancas y negras?'),
(2155, 2, 5, '¿Cuál es la montaña más alta del mundo?'),
(2156, 1, 4, '¿Qué civilización construyó las pirámides de Egipto?'),
(2157, 2, 6, '¿Cuál es la fórmula química del agua?'),
(2158, 2, 8, '¿Quién escribió Cien años de soledad?'),
(2159, 1, 9, '¿Cada cuántos años se celebran los Juegos Olímpicos?'),
(2160, 1, 14, '¿Qué significan las siglas CPU?'),
(2161, 1, 10, '¿Cuántos planetas tiene actualmente el sistema solar?'),
(2162, 1, 11, '¿Cuál es el animal más grande del planeta?'),
(2163, 2, 7, '¿Qué movimiento artístico fue desarrollado por Picasso y Braque?'),
(2164, 1, 15, '¿Cuántos días tiene un año bisiesto?'),
(2165, 2, 5, '¿Cuál es el país más grande del mundo por superficie?'),
(2166, 2, 4, '¿Quién fue conocido como el Libertador de gran parte de Sudamérica?'),
(2167, 2, 6, '¿Cuál es la unidad básica de la vida?'),
(2168, 2, 13, '¿Quién compuso la Novena Sinfonía?'),
(2169, 1, 9, '¿En qué deporte se utiliza una raqueta y una pelota amarilla?'),
(2170, 2, 4, '¿Qué muro cayó en 1989 simbolizando el fin de la Guerra Fría?'),
(2171, 1, 5, '¿Cuál es la capital de Japón?'),
(2172, 1, 6, '¿Qué órgano humano se encarga principalmente de bombear la sangre?'),
(2173, 1, 8, '¿Quién escribió Romeo y Julieta?'),
(2174, 2, 12, '¿Qué película incluye al personaje Darth Vader?'),
(2175, 1, 5, '¿Cuál es la capital de Italia?'),
(2176, 1, 6, '¿Qué fuerza mantiene a los planetas orbitando alrededor del Sol?'),
(2177, 2, 4, '¿Qué imperio construyó Machu Picchu?'),
(2178, 1, 11, '¿Cuál es el felino más grande del mundo?'),
(2179, 1, 14, '¿Qué dispositivo se utiliza para mover el cursor en un ordenador?'),
(2180, 2, 10, '¿Cuál es el planeta más grande del sistema solar?'),
(2181, 1, 13, '¿Qué cantante es conocido como el Rey del Pop?'),
(2182, 2, 9, '¿En qué deporte destacó Michael Jordan?'),
(2183, 2, 8, '¿Quién escribió La Odisea?'),
(2184, 2, 7, '¿Quién pintó La noche estrellada?'),
(2185, 2, 5, '¿En qué continente se encuentra Egipto?'),
(2186, 2, 6, '¿Qué científico formuló la teoría de la relatividad?'),
(2187, 1, 4, '¿Dónde nació la democracia antigua?'),
(2188, 1, 16, '¿Cuál es el ingrediente principal del guacamole?'),
(2189, 1, 15, '¿Cuántos continentes se reconocen habitualmente?'),
(2190, 2, 4, '¿En qué país se encuentra la ciudad antigua de Petra?'),
(2191, 1, 5, '¿Cuál es la capital de Portugal?'),
(2192, 1, 6, '¿Qué parte de la planta realiza principalmente la fotosíntesis?'),
(2193, 2, 12, '¿Quién dirigió la película Titanic?'),
(2194, 2, 13, '¿Qué grupo británico lanzó la canción Bohemian Rhapsody?'),
(2195, 1, 9, '¿En qué deporte se disputa el torneo de Wimbledon?'),
(2196, 2, 14, '¿Qué lenguaje se utiliza principalmente para estructurar páginas web?'),
(2197, 2, 10, '¿Cómo se llama nuestra galaxia?'),
(2198, 2, 11, '¿Cuál es el animal terrestre más rápido?'),
(2199, 1, 16, '¿De qué país es originaria la pizza moderna?'),
(2200, 2, 4, '¿Quién fue el primer presidente de Estados Unidos?'),
(2201, 2, 5, '¿Cuál es el desierto cálido más grande del mundo?'),
(2202, 2, 6, '¿Qué científico propuso las leyes del movimiento y la gravitación universal?'),
(2203, 2, 8, '¿Quién escribió El principito?'),
(2204, 1, 7, '¿Qué artista pintó los frescos de la Capilla Sixtina?'),
(2205, 1, 5, '¿Cuál es la capital de Alemania?'),
(2206, 1, 6, '¿Qué vitamina produce principalmente el cuerpo con la exposición al sol?'),
(2207, 2, 4, '¿Qué civilización desarrolló un calendario muy avanzado en Mesoamérica?'),
(2208, 1, 12, '¿Qué personaje vive en una piña bajo el mar?'),
(2209, 1, 13, '¿Qué instrumento toca normalmente un baterista?'),
(2210, 2, 9, '¿En qué país nació el fútbol moderno?'),
(2211, 1, 14, '¿Qué empresa creó el sistema operativo Windows?'),
(2212, 1, 10, '¿Qué planeta es famoso por sus anillos?'),
(2213, 1, 11, '¿Qué animal es conocido como el rey de la selva?'),
(2214, 1, 16, '¿Cuál es el ingrediente principal del sushi tradicional?'),
(2215, 2, 4, '¿Quién fue Napoleón Bonaparte?'),
(2216, 1, 5, '¿Cuál es la capital de Argentina?'),
(2217, 2, 6, '¿Qué elemento químico tiene el símbolo Fe?'),
(2218, 2, 8, '¿Quién escribió La metamorfosis?'),
(2219, 2, 7, '¿Qué artista español creó el personaje Don Quijote en ilustraciones famosas?'),
(2220, 2, 5, '¿Cuál es la capital de Canadá?'),
(2221, 1, 6, '¿Qué órgano del cuerpo humano permite respirar?'),
(2222, 2, 4, '¿Qué famoso faraón fue enterrado en una tumba encontrada casi intacta en 1922?'),
(2223, 1, 12, '¿Cómo se llama el ogro protagonista de una famosa saga de películas de animación?'),
(2224, 2, 13, '¿Qué compositor creó la ópera La flauta mágica?'),
(2225, 1, 9, '¿Cuántos puntos vale un triple en baloncesto?'),
(2226, 2, 14, '¿Qué significa la sigla WWW?'),
(2227, 2, 10, '¿Cuál es el planeta más cercano al Sol?'),
(2228, 1, 11, '¿Qué animal produce lana?'),
(2229, 2, 16, '¿Cuál es el ingrediente principal del hummus?'),
(2230, 2, 4, '¿Qué pueblo antiguo creó la democracia ateniense?'),
(2231, 1, 5, '¿Cuál es la capital de México?'),
(2232, 2, 6, '¿Qué científico desarrolló la teoría de la evolución por selección natural?'),
(2233, 2, 8, '¿Quién escribió Los viajes de Gulliver?'),
(2234, 2, 7, '¿Qué pintor español creó el cuadro Guernica?'),
(2235, 2, 5, '¿Cuál es la isla más grande del mundo?'),
(2236, 1, 6, '¿Cuántos huesos tiene aproximadamente un adulto?'),
(2237, 1, 4, '¿Quién fue Julio César?'),
(2238, 2, 12, '¿Qué actor interpretó a Jack en Titanic?'),
(2239, 1, 13, '¿Qué grupo musical formaron John Lennon y Paul McCartney?'),
(2240, 1, 5, '¿Cuál es la capital de Brasil?'),
(2241, 2, 6, '¿Qué parte del átomo tiene carga negativa?'),
(2242, 2, 4, '¿En qué país surgió la Revolución Industrial?'),
(2243, 1, 12, '¿Cómo se llama el ratón protagonista de Disney?'),
(2244, 2, 13, '¿Qué cantante española es conocida por la canción Despechá?'),
(2245, 2, 9, '¿Cuántos jugadores forman un equipo de baloncesto en pista?'),
(2246, 1, 14, '¿Qué empresa desarrolló el buscador Google?'),
(2247, 2, 10, '¿Cómo se llama el satélite natural de la Tierra?'),
(2248, 1, 11, '¿Qué animal es conocido por cambiar de color?'),
(2249, 1, 16, '¿Qué bebida se obtiene principalmente de la fermentación de la uva?'),
(2250, 2, 4, '¿Qué reina egipcia tuvo relación con Julio César y Marco Antonio?'),
(2251, 1, 5, '¿Cuál es la capital de Grecia?'),
(2252, 2, 6, '¿Qué científico descubrió la radiactividad junto con Pierre Curie?'),
(2253, 2, 8, '¿Quién escribió La Divina Comedia?'),
(2254, 2, 7, '¿Qué artista español creó el surrealismo con obras como La persistencia de la memoria?'),
(2255, 2, 5, '¿Cuál es el río que atraviesa Egipto?'),
(2256, 1, 6, '¿Qué planeta habitamos los seres humanos?'),
(2257, 2, 4, '¿Qué guerra enfrentó principalmente a Atenas y Esparta?'),
(2258, 2, 14, '¿Qué significa la sigla USB?'),
(2259, 1, 9, '¿En qué deporte se utiliza una portería y un balón con las manos?'),
(2260, 2, 5, '¿Cuál es la capital de Australia?'),
(2261, 2, 6, '¿Qué sangre circula por las arterias desde el corazón hacia el cuerpo?'),
(2262, 2, 4, '¿Qué pueblo construyó el Coliseo de Roma?'),
(2263, 2, 12, '¿Qué película cuenta la historia de un barco que choca contra un iceberg?'),
(2264, 1, 13, '¿Qué instrumento tiene seis cuerdas normalmente?'),
(2265, 2, 9, '¿En qué deporte se utiliza un bate y una pelota?'),
(2266, 2, 14, '¿Qué empresa creó el iPhone?'),
(2267, 2, 10, '¿Qué fenómeno ocurre cuando la Luna se interpone entre la Tierra y el Sol?'),
(2268, 1, 11, '¿Qué animal es conocido por tener una trompa larga?'),
(2269, 1, 16, '¿Cuál es el ingrediente principal de las tortillas mexicanas tradicionales?'),
(2270, 2, 4, '¿Qué explorador llegó a América en 1492?'),
(2271, 1, 5, '¿Cuál es la capital de Francia?'),
(2272, 2, 6, '¿Qué científico descubrió la penicilina?'),
(2273, 2, 8, '¿Quién escribió El Quijote?'),
(2274, 1, 7, '¿Qué material utiliza principalmente un escultor que trabaja con mármol?'),
(2275, 2, 5, '¿Cuál es el río más largo del mundo según muchas mediciones?'),
(2276, 1, 6, '¿Qué sentido permite percibir los sonidos?'),
(2277, 2, 4, '¿Qué civilización construyó las ciudades de Tikal y Palenque?'),
(2278, 2, 12, '¿Qué director creó la trilogía de El Señor de los Anillos en cine?'),
(2279, 1, 13, '¿Qué instrumento pertenece a la familia de viento?'),
(2280, 2, 9, '¿Qué país ganó el Mundial de fútbol de 2022?'),
(2281, 1, 14, '¿Qué dispositivo permite realizar llamadas y conectarse a internet?'),
(2282, 2, 10, '¿Qué nombre recibe el conjunto formado por una estrella y los cuerpos que orbitan a su alrededor?'),
(2283, 2, 11, '¿Cuál es el árbol que produce bellotas?'),
(2284, 2, 16, '¿Cuál es el ingrediente principal del gazpacho tradicional?'),
(2285, 2, 4, '¿Qué antigua ciudad fue sepultada por el volcán Vesubio?'),
(2286, 1, 5, '¿En qué continente está España?'),
(2287, 2, 6, '¿Qué parte del cerebro coordina principalmente el equilibrio?'),
(2288, 1, 8, '¿Qué personaje literario vive en una casa de Baker Street?'),
(2289, 2, 7, '¿Qué arquitecto diseñó la Sagrada Familia de Barcelona?'),
(2290, 2, 5, '¿Cuál es el país más poblado del mundo actualmente?'),
(2291, 1, 6, '¿Qué gas absorben las plantas durante la fotosíntesis?'),
(2292, 2, 4, '¿Quién fue conocido como el Gran Alejandro?'),
(2293, 1, 12, '¿Qué superhéroe tiene como identidad a Bruce Wayne?'),
(2294, 2, 13, '¿Qué compositor perdió la audición al final de su vida?'),
(2295, 1, 9, '¿Cuántos anillos tiene el símbolo olímpico?'),
(2296, 2, 14, '¿Qué empresa creó el sistema operativo Android?'),
(2297, 1, 10, '¿Qué estrella está en el centro del sistema solar?'),
(2298, 2, 11, '¿Qué mamífero es capaz de volar?'),
(2299, 1, 16, '¿Qué fruta se utiliza para hacer aceite de oliva?'),
(2300, 2, 4, '¿Qué tratado puso fin oficialmente a la Primera Guerra Mundial?'),
(2301, 2, 5, '¿Cuál es la capital de Turquía?'),
(2302, 1, 6, '¿Qué parte de la célula contiene el material genético?'),
(2303, 2, 8, '¿Quién escribió Frankenstein?'),
(2304, 1, 12, '¿Qué personaje dice la frase \'Hasta la vista, baby\'?'),
(2305, 2, 13, '¿Qué compositor creó Las cuatro estaciones?'),
(2306, 2, 9, '¿En qué deporte se utiliza un volante o pluma?'),
(2307, 2, 14, '¿Qué significa la sigla IA?'),
(2308, 2, 10, '¿Cómo se llama la explosión final de una estrella masiva?'),
(2309, 1, 11, '¿Qué animal es famoso por construir presas?'),
(2310, 2, 16, '¿Qué país es famoso por el plato llamado paella?'),
(2311, 2, 4, '¿Qué civilización utilizaba jeroglíficos?'),
(2312, 1, 5, '¿Cuál es la capital de Italia?'),
(2313, 2, 6, '¿Qué instrumento se utiliza para medir la temperatura?'),
(2314, 2, 8, '¿Quién creó al personaje de Harry Potter?'),
(2315, 2, 7, '¿Qué estilo artístico predominó en muchas catedrales medievales?'),
(2316, 2, 5, '¿Cuál es la montaña más alta de África?'),
(2317, 1, 6, '¿Cuántos sentidos tradicionales tiene el ser humano?'),
(2318, 2, 4, '¿Quién fue conocido como el rey del Imperio francés?'),
(2319, 1, 12, '¿Qué personaje es un ogro verde?'),
(2320, 1, 13, '¿Qué cantante es conocido como el Rey del Rock and Roll?'),
(2321, 2, 9, '¿Cuántos jugadores tiene un equipo de fútbol en el campo?'),
(2322, 1, 14, '¿Qué aparato se usa para imprimir documentos?'),
(2323, 2, 10, '¿Qué es un cometa?'),
(2324, 1, 11, '¿Cuál es el animal terrestre más grande?'),
(2325, 2, 16, '¿Qué país es famoso por el sushi?'),
(2326, 2, 4, '¿Qué muro cayó en 1989 simbolizando el fin de la Guerra Fría?'),
(2327, 2, 5, '¿Cuál es la capital de Japón?'),
(2328, 2, 6, '¿Qué científico formuló la teoría de la evolución?'),
(2329, 2, 8, '¿Quién escribió Romeo y Julieta?'),
(2330, 2, 7, '¿Qué pintor creó la Mona Lisa?'),
(2331, 1, 5, '¿Cuál es el océano más grande del planeta?'),
(2332, 1, 6, '¿Qué planeta es conocido como el planeta rojo?'),
(2333, 2, 4, '¿Qué civilización construyó las pirámides de Guiza?'),
(2334, 2, 12, '¿Qué película de animación tiene personajes llamados Woody y Buzz Lightyear?'),
(2335, 2, 13, '¿Qué instrumento tiene teclas blancas y negras?'),
(2336, 2, 9, '¿En qué deporte destacó Rafael Nadal?'),
(2337, 2, 14, '¿Qué red conecta ordenadores a nivel mundial?'),
(2338, 2, 10, '¿Qué instrumento permite observar objetos lejanos en el espacio?'),
(2339, 1, 11, '¿Qué ave no puede volar y vive en la Antártida?'),
(2340, 1, 16, '¿Qué ingrediente se obtiene de la leche y se usa en muchos postres?'),
(2341, 2, 4, '¿Quién fue el primer ser humano en pisar la Luna?'),
(2342, 2, 5, '¿Cuál es la capital de Rusia?'),
(2343, 2, 6, '¿Qué científico es considerado el padre de la física moderna?'),
(2344, 1, 8, '¿Qué detective fue creado por Arthur Conan Doyle?'),
(2345, 2, 7, '¿Qué movimiento artístico inició Pablo Picasso junto con Braque?'),
(2346, 2, 5, '¿Cuál es el país más grande del mundo por superficie?'),
(2347, 1, 6, '¿Qué órgano bombea la sangre por el cuerpo?'),
(2348, 2, 4, '¿Qué antigua ciudad griega fue famosa por sus guerreros?'),
(2349, 2, 12, '¿Qué saga cinematográfica incluye al personaje Darth Vader?'),
(2350, 2, 13, '¿Qué cantante interpretó la canción Thriller?'),
(2351, 2, 9, '¿Qué país ganó el Mundial de fútbol de 2010?'),
(2352, 1, 14, '¿Qué aparato convierte documentos físicos en archivos digitales?'),
(2353, 2, 10, '¿Cómo se llama la galaxia vecina más cercana a la Vía Láctea?'),
(2354, 1, 11, '¿Qué insecto produce miel?'),
(2355, 2, 16, '¿Qué especia es conocida como azafrán?'),
(2356, 2, 4, '¿Qué imperio tuvo su capital en Constantinopla?'),
(2357, 2, 5, '¿Cuál es la capital de Egipto?'),
(2358, 2, 6, '¿Qué unidad se utiliza para medir la fuerza?'),
(2359, 2, 8, '¿Qué escritor creó a Don Quijote de la Mancha?'),
(2360, 1, 7, '¿Qué color se obtiene al mezclar azul y amarillo?'),
(2361, 2, 5, '¿Cuál es la capital de Noruega?'),
(2362, 2, 6, '¿Cuál es el símbolo químico del oro?'),
(2363, 2, 4, '¿Qué faraón ordenó construir una de las mayores pirámides de Guiza?'),
(2364, 2, 12, '¿Qué actor interpretó a Iron Man en el Universo Marvel?'),
(2365, 2, 13, '¿Qué banda lanzó el álbum The Dark Side of the Moon?'),
(2366, 1, 9, '¿En qué deporte se utiliza una raqueta y una pelota amarilla?'),
(2367, 2, 14, '¿Qué significa la sigla CPU?'),
(2368, 2, 10, '¿Qué planeta tiene la Gran Mancha Roja?'),
(2369, 2, 11, '¿Cuál es el animal terrestre más alto?'),
(2370, 1, 16, '¿Qué bebida se prepara con granos tostados y molidos?'),
(2371, 2, 4, '¿Quién fue conocido como el Libertador de varios países sudamericanos?'),
(2372, 2, 5, '¿Cuál es la capital de Irlanda?'),
(2373, 1, 6, '¿Qué planeta está más cerca de la Tierra?'),
(2374, 2, 8, '¿Quién escribió La isla del tesoro?'),
(2375, 2, 7, '¿Qué artista pintó Las meninas?'),
(2376, 1, 5, '¿Qué país tiene forma alargada en la costa oeste de Sudamérica?'),
(2377, 2, 6, '¿Qué vitamina se asocia con los cítricos como la naranja?'),
(2378, 2, 4, '¿Qué acontecimiento comenzó en 1939?'),
(2379, 1, 12, '¿Cómo se llama el león protagonista de El Rey León?'),
(2380, 2, 13, '¿Qué instrumento toca un violinista?'),
(2381, 2, 9, '¿Qué piloto español ganó varios campeonatos de Fórmula 1?'),
(2382, 2, 14, '¿Qué empresa creó la consola PlayStation?'),
(2383, 1, 10, '¿Cuántos planetas tiene el sistema solar?'),
(2384, 2, 11, '¿Qué animal es conocido por su gran inteligencia marina?'),
(2385, 2, 16, '¿De qué país procede tradicionalmente el curry?'),
(2386, 2, 4, '¿Qué reina española apoyó el viaje de Colón?'),
(2387, 1, 5, '¿Cuál es la capital de España?'),
(2388, 2, 6, '¿Qué instrumento permite ver objetos muy pequeños?'),
(2389, 2, 8, '¿Quién escribió 20.000 leguas de viaje submarino?'),
(2390, 2, 5, '¿Cuál es la capital de Canadá?'),
(2391, 1, 6, '¿Qué planeta es famoso por sus anillos?'),
(2392, 2, 4, '¿Quién fue el primer emperador romano?'),
(2393, 2, 12, '¿Qué película ganó el Óscar a mejor película en 1998 y trata sobre un barco hundido?'),
(2394, 1, 13, '¿Cuántas notas musicales básicas hay en la escala occidental?'),
(2395, 2, 9, '¿En qué deporte destacó Michael Jordan?'),
(2396, 1, 14, '¿Qué empresa creó Windows?'),
(2397, 2, 10, '¿Qué planeta tarda aproximadamente 365 días en dar una vuelta al Sol?'),
(2398, 1, 11, '¿Qué animal es conocido como el rey de la selva?'),
(2399, 2, 16, '¿Qué ingrediente principal lleva el hummus tradicional?'),
(2400, 2, 4, '¿Qué revolución comenzó en Francia en 1789?'),
(2401, 2, 5, '¿Cuál es la capital de Portugal?'),
(2402, 2, 6, '¿Qué científico formuló las leyes del movimiento y la gravedad?'),
(2403, 2, 8, '¿Quién escribió El principito?'),
(2404, 2, 7, '¿Qué escultor creó el David de Florencia?'),
(2405, 1, 5, '¿En qué continente está Brasil?'),
(2406, 1, 6, '¿Qué gas necesitamos para respirar?'),
(2407, 2, 4, '¿Qué pueblo creó Machu Picchu?'),
(2408, 2, 12, '¿Qué saga tiene como protagonista a Harry Potter?'),
(2409, 2, 13, '¿Qué grupo británico cantaba Bohemian Rhapsody?'),
(2410, 2, 9, '¿Qué país organizó los Juegos Olímpicos de 1992?'),
(2411, 2, 14, '¿Qué lenguaje se utiliza habitualmente para crear páginas web junto con CSS y JavaScript?'),
(2412, 2, 10, '¿Qué nombre recibe una agrupación de estrellas que forma una figura aparente?'),
(2413, 2, 11, '¿Cuál es el animal terrestre más rápido?'),
(2414, 2, 16, '¿De qué país es originaria la pizza tradicional?'),
(2415, 2, 4, '¿Qué civilización inventó la democracia en Atenas?'),
(2416, 1, 5, '¿Cuál es la capital de Alemania?'),
(2417, 2, 6, '¿Cuál es la fórmula química del agua?'),
(2418, 2, 8, '¿Quién escribió 1984?'),
(2419, 2, 7, '¿En qué museo se encuentra la Mona Lisa?'),
(2420, 1, 12, '¿Cómo se llama el muñeco vaquero de Toy Story?'),
(2421, 2, 13, '¿Qué cantante fue conocido como el Rey del Pop?'),
(2422, 1, 9, '¿Cuánto dura un partido de fútbol profesional normalmente?'),
(2423, 1, 14, '¿Qué dispositivo se utiliza para mover el cursor del ordenador?'),
(2424, 2, 10, '¿Qué planeta es el más grande del sistema solar?'),
(2425, 1, 11, '¿Qué animal tiene rayas negras y blancas?'),
(2426, 1, 16, '¿Qué alimento producen las abejas?'),
(2427, 2, 4, '¿Quién fue el líder sudafricano que luchó contra el apartheid?'),
(2428, 2, 5, '¿Cuál es la montaña más alta del mundo?'),
(2429, 1, 6, '¿Qué órgano utilizamos principalmente para ver?'),
(2430, 2, 8, '¿Quién escribió La metamorfosis?'),
(2431, 2, 7, '¿Qué pintor español creó el cuadro Guernica?'),
(2432, 2, 5, '¿Cuál es la capital de Australia?'),
(2433, 2, 6, '¿Qué científico desarrolló la teoría de la relatividad?'),
(2434, 2, 4, '¿Qué explorador llegó a América en 1492?'),
(2435, 1, 12, '¿Cómo se llama el ogro protagonista de una famosa saga de animación?'),
(2436, 2, 13, '¿Qué compositor creó la Novena Sinfonía?'),
(2437, 2, 9, '¿En qué deporte se disputa el Tour de Francia?'),
(2438, 2, 14, '¿Qué empresa desarrolló el buscador Google?'),
(2439, 1, 10, '¿Qué cuerpo celeste orbita alrededor de la Tierra?'),
(2440, 2, 11, '¿Cuál es el animal más grande conocido actualmente?'),
(2441, 2, 16, '¿Qué plato español está hecho principalmente con arroz?'),
(2442, 2, 4, '¿Qué imperio construyó una gran red de carreteras en América del Sur?'),
(2443, 1, 5, '¿Cuál es la capital de Francia?'),
(2444, 2, 6, '¿Qué fuerza mantiene a los planetas orbitando alrededor del Sol?'),
(2445, 2, 8, '¿Quién escribió El señor de los anillos?'),
(2446, 2, 7, '¿Qué movimiento artístico está asociado con Salvador Dalí?'),
(2447, 2, 12, '¿Qué director creó la película E.T.?'),
(2448, 2, 13, '¿Qué instrumento suele tener seis cuerdas?'),
(2449, 2, 9, '¿Qué país inventó el judo?'),
(2450, 1, 14, '¿Qué dispositivo almacena archivos digitales?'),
(2451, 2, 10, '¿Qué planeta está más alejado del Sol?'),
(2452, 2, 11, '¿Qué árbol produce piñas?'),
(2453, 1, 16, '¿Qué fruta amarilla es rica en potasio?'),
(2454, 2, 4, '¿Qué ciudad fue conocida como la capital del Imperio romano?'),
(2455, 2, 5, '¿Cuál es el río más largo del mundo según muchas mediciones modernas?'),
(2456, 2, 6, '¿Qué científico descubrió la penicilina?'),
(2457, 2, 8, '¿Qué personaje vive aventuras junto a Sancho Panza?'),
(2458, 2, 7, '¿Qué edificio famoso diseñó Gaudí en Barcelona?'),
(2459, 1, 12, '¿Qué superhéroe lleva un escudo con una estrella?'),
(2460, 2, 13, '¿Qué instrumento toca normalmente un pianista?'),
(2461, 2, 9, '¿Cuántos jugadores forman un equipo de baloncesto en pista?'),
(2462, 2, 14, '¿Qué significa la sigla USB?'),
(2463, 2, 10, '¿Qué fenómeno ocurre cuando la Luna se interpone entre la Tierra y el Sol?'),
(2464, 2, 11, '¿Qué animal es conocido por cambiar de color para camuflarse?'),
(2465, 2, 16, '¿Cuál es el ingrediente principal del guacamole?'),
(2466, 2, 4, '¿Qué civilización construyó el Coliseo de Roma?'),
(2467, 1, 5, '¿Cuál es la capital de Italia?'),
(2468, 2, 6, '¿Qué elemento químico tiene el símbolo Fe?'),
(2469, 2, 8, '¿Qué escritor creó al personaje Sherlock Holmes?'),
(2470, 2, 7, '¿Qué famoso museo está situado en Madrid y alberga obras de Velázquez y Goya?'),
(2471, 2, 12, '¿Qué película de ciencia ficción presenta al personaje Neo?'),
(2472, 2, 13, '¿Qué banda británica estaba formada por John Lennon, Paul McCartney, George Harrison y Ringo Starr?'),
(2473, 1, 9, '¿Qué deporte practica un nadador?'),
(2474, 2, 14, '¿Qué empresa creó el iPhone?'),
(2475, 2, 10, '¿Cómo se llama nuestra galaxia?'),
(2476, 1, 11, '¿Qué animal doméstico suele llamarse el mejor amigo del hombre?'),
(2477, 2, 16, '¿Qué bebida se obtiene de las hojas del té?'),
(2478, 2, 4, '¿Qué líder impulsó la independencia de la India mediante la resistencia no violenta?'),
(2479, 2, 5, '¿Qué país tiene como capital Buenos Aires?'),
(2480, 1, 6, '¿Qué parte de la planta absorbe agua del suelo?'),
(2481, 2, 4, '¿Quién fue el emperador francés conocido por sus conquistas en Europa?'),
(2482, 2, 5, '¿Cuál es el desierto cálido más grande del mundo?'),
(2483, 2, 6, '¿Qué científico propuso la teoría de la evolución por selección natural?'),
(2484, 2, 8, '¿Quién escribió Romeo y Julieta?'),
(2485, 2, 7, '¿Qué pintor neerlandés creó La noche estrellada?'),
(2486, 2, 12, '¿Cómo se llama el protagonista de la saga Indiana Jones?'),
(2487, 2, 13, '¿Qué compositor fue conocido como el niño prodigio de la música clásica?'),
(2488, 2, 9, '¿En qué deporte se utiliza un bate y una pelota?'),
(2489, 1, 14, '¿Qué componente muestra imágenes en un ordenador?'),
(2490, 2, 10, '¿Qué estrella está en el centro del sistema solar?'),
(2491, 2, 11, '¿Qué mamífero pone huevos?'),
(2492, 2, 16, '¿Qué pasta italiana tiene forma de tubos?'),
(2493, 2, 4, '¿Qué muro cayó en Berlín en 1989?'),
(2494, 1, 5, '¿En qué continente está Japón?'),
(2495, 2, 6, '¿Qué parte del cuerpo humano contiene el cerebro?'),
(2496, 2, 8, '¿Qué personaje literario es un vampiro creado por Bram Stoker?'),
(2497, 2, 7, '¿Qué estilo arquitectónico tiene arcos apuntados y grandes vidrieras?'),
(2498, 2, 12, '¿Qué actor interpretó a Jack Sparrow?'),
(2499, 1, 13, '¿Qué instrumento tiene teclas blancas y negras?'),
(2500, 2, 9, '¿Qué tenista español ganó múltiples Roland Garros?'),
(2501, 2, 14, '¿Qué significa la palabra \'internet\' en relación con redes?'),
(2502, 2, 10, '¿Qué objeto espacial es un fragmento rocoso que orbita alrededor del Sol?'),
(2503, 1, 11, '¿Qué animal tiene una trompa larga?'),
(2504, 2, 16, '¿Qué alimento se obtiene de las uvas fermentadas?'),
(2505, 2, 4, '¿Quién fue conocido por la frase \'Tengo un sueño\'?'),
(2506, 2, 5, '¿Cuál es la capital de Grecia?'),
(2507, 2, 6, '¿Qué instrumento mide la temperatura?'),
(2508, 2, 8, '¿Quién escribió La divina comedia?'),
(2509, 2, 7, '¿Qué arquitecto diseñó la Casa Batlló de Barcelona?'),
(2510, 2, 6, '¿Qué científico formuló la teoría heliocéntrica que situaba al Sol en el centro?'),
(2511, 2, 4, '¿Qué antigua civilización construyó las pirámides de Egipto?'),
(2512, 2, 5, '¿Cuál es la capital de México?'),
(2513, 1, 6, '¿Qué estado del agua tiene forma sólida?'),
(2514, 2, 8, '¿Qué detective fue creado por Agatha Christie?'),
(2515, 2, 7, '¿Qué técnica artística utiliza pequeñas piezas de vidrio o piedra para crear imágenes?'),
(2516, 2, 12, '¿Qué película animada tiene como protagonista a una princesa llamada Elsa?'),
(2517, 2, 13, '¿Qué cantante es conocido como el Rey del Rock?'),
(2518, 1, 9, '¿Cuántos anillos tiene el símbolo olímpico?'),
(2519, 2, 14, '¿Qué sistema operativo utilizan muchos teléfonos móviles?'),
(2520, 2, 10, '¿Cómo se llama el primer hombre que viajó al espacio?'),
(2521, 1, 11, '¿Qué animal produce lana?'),
(2522, 2, 16, '¿Qué ingrediente da picor a muchos platos mexicanos?'),
(2523, 2, 4, '¿Qué documento inglés de 1215 limitó el poder del rey?'),
(2524, 2, 5, '¿Cuál es la isla más grande del mundo?'),
(2525, 2, 6, '¿Qué científico estudió la electricidad y los rayos con una cometa?'),
(2526, 2, 8, '¿Qué novela comienza con un personaje llamado Gregor Samsa?'),
(2527, 2, 7, '¿Qué material utiliza principalmente un escultor que trabaja con mármol?'),
(2528, 2, 12, '¿Qué saga cinematográfica está ambientada en la Tierra Media?'),
(2529, 2, 13, '¿Qué compositor creó Las cuatro estaciones?'),
(2530, 2, 9, '¿En qué deporte se usa una raqueta y un volante?'),
(2531, 2, 14, '¿Qué unidad se utiliza normalmente para medir almacenamiento digital?'),
(2532, 2, 10, '¿Qué planeta es conocido como el planeta rojo?'),
(2533, 2, 11, '¿Qué ave no puede volar y vive en la Antártida?'),
(2534, 2, 16, '¿Qué dulce español se consume tradicionalmente en Navidad?');
--
-- Indexes for dumped tables
--
--
-- Indexes for table `preguntas`
--
ALTER TABLE `pregunta`
ADD PRIMARY KEY (`idPregunta`),
ADD KEY `idCategoria` (`idCategoria`);
--
-- AUTO_INCREMENT for dumped tables
--
--
-- AUTO_INCREMENT for table `preguntas`
--
ALTER TABLE `pregunta`
MODIFY `idPregunta` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2535;
--
-- Constraints for dumped tables
--
--
-- Constraints for table `preguntas`
--
ALTER TABLE `pregunta`
ADD CONSTRAINT `preguntas_ibfk_2` FOREIGN KEY (`idCategoria`) REFERENCES `categoria` (`idCategoria`);
COMMIT;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
File diff suppressed because it is too large Load Diff
+7 -4
View File
@@ -166,6 +166,9 @@ CREATE TABLE `partida` (
`idPartida` int(11) NOT NULL AUTO_INCREMENT, `idPartida` int(11) NOT NULL AUTO_INCREMENT,
`nombrePartida` varchar(100) NOT NULL, `nombrePartida` varchar(100) NOT NULL,
`idUsuario` int(11) NOT NULL, `idUsuario` int(11) NOT NULL,
`fechaCreacion` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`fechaInicio` DATETIME NULL,
`fechaFin` DATETIME NULL,
PRIMARY KEY (`idPartida`), PRIMARY KEY (`idPartida`),
KEY `FK idUsuario tabla usuario` (`idUsuario`), KEY `FK idUsuario tabla usuario` (`idUsuario`),
CONSTRAINT `FK idUsuario tabla usuario` FOREIGN KEY (`idUsuario`) REFERENCES `usuario` (`idUsuario`) CONSTRAINT `FK idUsuario tabla usuario` FOREIGN KEY (`idUsuario`) REFERENCES `usuario` (`idUsuario`)
@@ -178,10 +181,10 @@ CREATE TABLE `partida` (
LOCK TABLES `partida` WRITE; LOCK TABLES `partida` WRITE;
/*!40000 ALTER TABLE `partida` DISABLE KEYS */; /*!40000 ALTER TABLE `partida` DISABLE KEYS */;
INSERT INTO `partida` VALUES INSERT INTO `partida` (idPartida, nombrePartida, idUsuario, fechaInicio, fechaFin) VALUES
(1,'Partida de prueba 1',1), (1,'Partida de prueba 1',1, NULL, NULL),
(2,'Partida de prueba 2',4), (2,'Partida de prueba 2',4, NULL, NULL),
(3,'Partida de prueba 3',9); (3,'Partida de prueba 3',9, NULL, NULL);
/*!40000 ALTER TABLE `partida` ENABLE KEYS */; /*!40000 ALTER TABLE `partida` ENABLE KEYS */;
UNLOCK TABLES; UNLOCK TABLES;
-346
View File
@@ -1,346 +0,0 @@
-- phpMyAdmin SQL Dump
-- version 5.2.3
-- https://www.phpmyadmin.net/
--
-- Host: localhost:3307
-- Generation Time: Sep 23, 2026 at 12:02 PM
-- Server version: 8.4.3
-- PHP Version: 8.3.30
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
START TRANSACTION;
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
--
-- Database: `triviagmatico`
--
-- --------------------------------------------------------
--
-- Table structure for table `categoria`
--
CREATE TABLE `categoria` (
`idCategoria` int NOT NULL,
`nombreCategoria` varchar(50) COLLATE utf8mb4_spanish_ci NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_spanish_ci;
-- --------------------------------------------------------
--
-- Table structure for table `equipo`
--
CREATE TABLE `equipo` (
`idEquipo` int NOT NULL,
`nombreEquipo` varchar(50) COLLATE utf8mb4_spanish_ci NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_spanish_ci;
-- --------------------------------------------------------
--
-- Table structure for table `equipoxpartida`
--
CREATE TABLE `equipoxpartida` (
`idEquipoxPartida` int NOT NULL,
`idPartida` int DEFAULT NULL,
`idEquipo` int DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_spanish_ci;
-- --------------------------------------------------------
--
-- Table structure for table `equipoxusuario`
--
CREATE TABLE `equipoxusuario` (
`idEquipoxUsuario` int NOT NULL,
`idUsuario` int NOT NULL,
`idEquipo` int NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_spanish_ci;
-- --------------------------------------------------------
--
-- Table structure for table `partida`
--
CREATE TABLE `partida` (
`idPartida` int NOT NULL,
`nombrePartida` varchar(100) COLLATE utf8mb4_spanish_ci NOT NULL,
`idUsuario` int NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_spanish_ci;
-- --------------------------------------------------------
--
-- Table structure for table `partidaxpregunta`
--
CREATE TABLE `partidaxpregunta` (
`idPartidaxPregunta` int NOT NULL,
`idPartida` int NOT NULL,
`idPregunta` int NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_spanish_ci;
-- --------------------------------------------------------
--
-- Table structure for table `pregunta`
--
CREATE TABLE `pregunta` (
`idPregunta` int NOT NULL,
`idCategoria` int NOT NULL,
`nombrePregunta` varchar(255) COLLATE utf8mb4_spanish_ci NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_spanish_ci;
-- --------------------------------------------------------
--
-- Table structure for table `respuesta`
--
CREATE TABLE `respuesta` (
`idRespuesta` int NOT NULL,
`idPregunta` int NOT NULL,
`nombreRespuesta` varchar(255) COLLATE utf8mb4_spanish_ci NOT NULL,
`correcta` tinyint(1) DEFAULT '0'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_spanish_ci;
-- --------------------------------------------------------
--
-- Table structure for table `respuestaalmacenada`
--
CREATE TABLE `respuestaalmacenada` (
`idRespuestaAlmacenada` int NOT NULL,
`idPartidaxPregunta` int NOT NULL,
`idUsuario` int NOT NULL,
`idRespuesta` int NOT NULL,
`primero` tinyint(1) DEFAULT '0'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_spanish_ci;
-- --------------------------------------------------------
--
-- Table structure for table `usuario`
--
CREATE TABLE `usuario` (
`idUsuario` int NOT NULL,
`nombreUsuario` varchar(50) COLLATE utf8mb4_spanish_ci NOT NULL,
`contrasena` varchar(100) COLLATE utf8mb4_spanish_ci NOT NULL,
`email` varchar(50) COLLATE utf8mb4_spanish_ci NOT NULL,
`avatar` varchar(200) COLLATE utf8mb4_spanish_ci DEFAULT NULL,
`cookie` varchar(200) COLLATE utf8mb4_spanish_ci DEFAULT NULL,
`aciertos` int NOT NULL,
`victorias` int NOT NULL,
`derrotas` int NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_spanish_ci;
--
-- Indexes for dumped tables
--
--
-- Indexes for table `categoria`
--
ALTER TABLE `categoria`
ADD PRIMARY KEY (`idCategoria`);
--
-- Indexes for table `equipo`
--
ALTER TABLE `equipo`
ADD PRIMARY KEY (`idEquipo`);
--
-- Indexes for table `equipoxpartida`
--
ALTER TABLE `equipoxpartida`
ADD PRIMARY KEY (`idEquipoxPartida`),
ADD KEY `FK idEquipo tabla equipo` (`idEquipo`),
ADD KEY `FK idPartida tabla partida` (`idPartida`);
--
-- Indexes for table `equipoxusuario`
--
ALTER TABLE `equipoxusuario`
ADD PRIMARY KEY (`idEquipoxUsuario`),
ADD KEY `idUsuario` (`idUsuario`),
ADD KEY `idEquipo` (`idEquipo`);
--
-- Indexes for table `partida`
--
ALTER TABLE `partida`
ADD PRIMARY KEY (`idPartida`),
ADD KEY `FK idUsuario tabla usuario` (`idUsuario`);
--
-- Indexes for table `partidaxpregunta`
--
ALTER TABLE `partidaxpregunta`
ADD PRIMARY KEY (`idPartidaxPregunta`),
ADD KEY `idPartida` (`idPartida`),
ADD KEY `idPregunta` (`idPregunta`);
--
-- Indexes for table `pregunta`
--
ALTER TABLE `pregunta`
ADD PRIMARY KEY (`idPregunta`),
ADD KEY `idCategoria` (`idCategoria`);
--
-- Indexes for table `respuesta`
--
ALTER TABLE `respuesta`
ADD PRIMARY KEY (`idRespuesta`),
ADD KEY `idPregunta` (`idPregunta`);
--
-- Indexes for table `respuestaalmacenada`
--
ALTER TABLE `respuestaalmacenada`
ADD PRIMARY KEY (`idRespuestaAlmacenada`),
ADD KEY `idPartidaxPregunta` (`idPartidaxPregunta`),
ADD KEY `idUsuario` (`idUsuario`),
ADD KEY `idRespuesta` (`idRespuesta`);
--
-- Indexes for table `usuario`
--
ALTER TABLE `usuario`
ADD PRIMARY KEY (`idUsuario`),
ADD UNIQUE KEY `email` (`email`);
--
-- AUTO_INCREMENT for dumped tables
--
--
-- AUTO_INCREMENT for table `categoria`
--
ALTER TABLE `categoria`
MODIFY `idCategoria` int NOT NULL AUTO_INCREMENT;
--
-- AUTO_INCREMENT for table `equipo`
--
ALTER TABLE `equipo`
MODIFY `idEquipo` int NOT NULL AUTO_INCREMENT;
--
-- AUTO_INCREMENT for table `equipoxpartida`
--
ALTER TABLE `equipoxpartida`
MODIFY `idEquipoxPartida` int NOT NULL AUTO_INCREMENT;
--
-- AUTO_INCREMENT for table `equipoxusuario`
--
ALTER TABLE `equipoxusuario`
MODIFY `idEquipoxUsuario` int NOT NULL AUTO_INCREMENT;
--
-- AUTO_INCREMENT for table `partida`
--
ALTER TABLE `partida`
MODIFY `idPartida` int NOT NULL AUTO_INCREMENT;
--
-- AUTO_INCREMENT for table `partidaxpregunta`
--
ALTER TABLE `partidaxpregunta`
MODIFY `idPartidaxPregunta` int NOT NULL AUTO_INCREMENT;
--
-- AUTO_INCREMENT for table `pregunta`
--
ALTER TABLE `pregunta`
MODIFY `idPregunta` int NOT NULL AUTO_INCREMENT;
--
-- AUTO_INCREMENT for table `respuesta`
--
ALTER TABLE `respuesta`
MODIFY `idRespuesta` int NOT NULL AUTO_INCREMENT;
--
-- AUTO_INCREMENT for table `respuestaalmacenada`
--
ALTER TABLE `respuestaalmacenada`
MODIFY `idRespuestaAlmacenada` int NOT NULL AUTO_INCREMENT;
--
-- AUTO_INCREMENT for table `usuario`
--
ALTER TABLE `usuario`
MODIFY `idUsuario` int NOT NULL AUTO_INCREMENT;
--
-- Constraints for dumped tables
--
--
-- Constraints for table `equipoxpartida`
--
ALTER TABLE `equipoxpartida`
ADD CONSTRAINT `FK idEquipo tabla equipo` FOREIGN KEY (`idEquipo`) REFERENCES `equipo` (`idEquipo`) ON DELETE RESTRICT ON UPDATE RESTRICT,
ADD CONSTRAINT `FK idPartida tabla partida` FOREIGN KEY (`idPartida`) REFERENCES `partida` (`idPartida`) ON DELETE RESTRICT ON UPDATE RESTRICT;
--
-- Constraints for table `equipoxusuario`
--
ALTER TABLE `equipoxusuario`
ADD CONSTRAINT `equipoxusuario_ibfk_1` FOREIGN KEY (`idUsuario`) REFERENCES `usuario` (`idUsuario`),
ADD CONSTRAINT `equipoxusuario_ibfk_2` FOREIGN KEY (`idEquipo`) REFERENCES `equipo` (`idEquipo`);
--
-- Constraints for table `partida`
--
ALTER TABLE `partida`
ADD CONSTRAINT `FK idUsuario tabla usuario` FOREIGN KEY (`idUsuario`) REFERENCES `usuario` (`idUsuario`) ON DELETE RESTRICT ON UPDATE RESTRICT;
--
-- Constraints for table `partidaxpregunta`
--
ALTER TABLE `partidaxpregunta`
ADD CONSTRAINT `partidaxpregunta_ibfk_1` FOREIGN KEY (`idPartida`) REFERENCES `partida` (`idPartida`),
ADD CONSTRAINT `partidaxpregunta_ibfk_2` FOREIGN KEY (`idPregunta`) REFERENCES `pregunta` (`idPregunta`);
--
-- Constraints for table `pregunta`
--
ALTER TABLE `pregunta`
ADD CONSTRAINT `pregunta_ibfk_1` FOREIGN KEY (`idCategoria`) REFERENCES `categoria` (`idCategoria`);
--
-- Constraints for table `respuesta`
--
ALTER TABLE `respuesta`
ADD CONSTRAINT `respuesta_ibfk_1` FOREIGN KEY (`idPregunta`) REFERENCES `pregunta` (`idPregunta`);
--
-- Constraints for table `respuestaalmacenada`
--
ALTER TABLE `respuestaalmacenada`
ADD CONSTRAINT `respuestaalmacenada_ibfk_1` FOREIGN KEY (`idPartidaxPregunta`) REFERENCES `partidaxpregunta` (`idPartidaxPregunta`) ON DELETE CASCADE,
ADD CONSTRAINT `respuestaalmacenada_ibfk_2` FOREIGN KEY (`idUsuario`) REFERENCES `usuario` (`idUsuario`) ON DELETE CASCADE,
ADD CONSTRAINT `respuestaalmacenada_ibfk_3` FOREIGN KEY (`idRespuesta`) REFERENCES `respuesta` (`idRespuesta`) ON DELETE CASCADE;
COMMIT;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
-714
View File
@@ -1,714 +0,0 @@
/*M!999999\- enable the sandbox mode */
-- MariaDB dump 10.19-11.7.2-MariaDB, for Win64 (AMD64)
--
-- Host: localhost Database: triviagmatico
-- ------------------------------------------------------
-- Server version 10.4.32-MariaDB
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*M!100616 SET @OLD_NOTE_VERBOSITY=@@NOTE_VERBOSITY, NOTE_VERBOSITY=0 */;
--
-- Table structure for table `categoria`
--
DROP TABLE IF EXISTS `categoria`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `categoria` (
`idCategoria` int(11) NOT NULL AUTO_INCREMENT,
`nombreCategoria` varchar(50) NOT NULL,
PRIMARY KEY (`idCategoria`)
) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_spanish_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `categoria`
--
LOCK TABLES `categoria` WRITE;
/*!40000 ALTER TABLE `categoria` DISABLE KEYS */;
INSERT INTO `categoria` VALUES
(4,'Historia'),
(5,'Geografía'),
(6,'Ciencia'),
(7,'Arte'),
(8,'Literatura'),
(9,'Deportes'),
(10,'Astronomía'),
(11,'Naturaleza'),
(12,'Cine'),
(13,'Música'),
(14,'Tecnología'),
(15,'Cultura'),
(16,'Gastronomía');
/*!40000 ALTER TABLE `categoria` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `equipo`
--
DROP TABLE IF EXISTS `equipo`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `equipo` (
`idEquipo` int(11) NOT NULL AUTO_INCREMENT,
`nombreEquipo` varchar(50) NOT NULL,
PRIMARY KEY (`idEquipo`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_spanish_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `equipo`
--
LOCK TABLES `equipo` WRITE;
/*!40000 ALTER TABLE `equipo` DISABLE KEYS */;
/*!40000 ALTER TABLE `equipo` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `equipoxpartida`
--
DROP TABLE IF EXISTS `equipoxpartida`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `equipoxpartida` (
`idEquipoxPartida` int(11) NOT NULL AUTO_INCREMENT,
`idPartida` int(11) DEFAULT NULL,
`idEquipo` int(11) DEFAULT NULL,
PRIMARY KEY (`idEquipoxPartida`),
KEY `FK idEquipo tabla equipo` (`idEquipo`),
KEY `FK idPartida tabla partida` (`idPartida`),
CONSTRAINT `FK idEquipo tabla equipo` FOREIGN KEY (`idEquipo`) REFERENCES `equipo` (`idEquipo`),
CONSTRAINT `FK idPartida tabla partida` FOREIGN KEY (`idPartida`) REFERENCES `partida` (`idPartida`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_spanish_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `equipoxpartida`
--
LOCK TABLES `equipoxpartida` WRITE;
/*!40000 ALTER TABLE `equipoxpartida` DISABLE KEYS */;
/*!40000 ALTER TABLE `equipoxpartida` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `equipoxusuario`
--
DROP TABLE IF EXISTS `equipoxusuario`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `equipoxusuario` (
`idEquipoxUsuario` int(11) NOT NULL AUTO_INCREMENT,
`idUsuario` int(11) NOT NULL,
`idEquipo` int(11) NOT NULL,
PRIMARY KEY (`idEquipoxUsuario`),
KEY `idUsuario` (`idUsuario`),
KEY `idEquipo` (`idEquipo`),
CONSTRAINT `equipoxusuario_ibfk_1` FOREIGN KEY (`idUsuario`) REFERENCES `usuario` (`idUsuario`),
CONSTRAINT `equipoxusuario_ibfk_2` FOREIGN KEY (`idEquipo`) REFERENCES `equipo` (`idEquipo`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_spanish_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `equipoxusuario`
--
LOCK TABLES `equipoxusuario` WRITE;
/*!40000 ALTER TABLE `equipoxusuario` DISABLE KEYS */;
/*!40000 ALTER TABLE `equipoxusuario` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `partida`
--
DROP TABLE IF EXISTS `partida`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `partida` (
`idPartida` int(11) NOT NULL AUTO_INCREMENT,
`nombrePartida` varchar(100) NOT NULL,
`idUsuario` int(11) NOT NULL,
PRIMARY KEY (`idPartida`),
KEY `FK idUsuario tabla usuario` (`idUsuario`),
CONSTRAINT `FK idUsuario tabla usuario` FOREIGN KEY (`idUsuario`) REFERENCES `usuario` (`idUsuario`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_spanish_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `partida`
--
LOCK TABLES `partida` WRITE;
/*!40000 ALTER TABLE `partida` DISABLE KEYS */;
/*!40000 ALTER TABLE `partida` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `partidaxpregunta`
--
DROP TABLE IF EXISTS `partidaxpregunta`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `partidaxpregunta` (
`idPartidaxPregunta` int(11) NOT NULL AUTO_INCREMENT,
`idPartida` int(11) NOT NULL,
`idPregunta` int(11) NOT NULL,
PRIMARY KEY (`idPartidaxPregunta`),
KEY `idPartida` (`idPartida`),
KEY `idPregunta` (`idPregunta`),
CONSTRAINT `partidaxpregunta_ibfk_1` FOREIGN KEY (`idPartida`) REFERENCES `partida` (`idPartida`),
CONSTRAINT `partidaxpregunta_ibfk_2` FOREIGN KEY (`idPregunta`) REFERENCES `pregunta` (`idPregunta`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_spanish_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `partidaxpregunta`
--
LOCK TABLES `partidaxpregunta` WRITE;
/*!40000 ALTER TABLE `partidaxpregunta` DISABLE KEYS */;
/*!40000 ALTER TABLE `partidaxpregunta` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `pregunta`
--
DROP TABLE IF EXISTS `pregunta`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `pregunta` (
`idPregunta` int(11) NOT NULL AUTO_INCREMENT,
`idCategoria` int(11) NOT NULL,
`nombrePregunta` varchar(255) NOT NULL,
PRIMARY KEY (`idPregunta`),
KEY `idCategoria` (`idCategoria`),
CONSTRAINT `pregunta_ibfk_1` FOREIGN KEY (`idCategoria`) REFERENCES `categoria` (`idCategoria`)
) ENGINE=InnoDB AUTO_INCREMENT=2535 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_spanish_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `pregunta`
--
LOCK TABLES `pregunta` WRITE;
/*!40000 ALTER TABLE `pregunta` DISABLE KEYS */;
INSERT INTO `pregunta` VALUES
(2140,4,'¿En qué año llegó Cristóbal Colón a América?'),
(2141,5,'¿Cuál es la capital de Francia?'),
(2142,6,'¿Qué planeta es conocido como el planeta rojo?'),
(2143,7,'¿Quién pintó la Mona Lisa?'),
(2144,5,'¿Cuál es el océano más grande del planeta?'),
(2145,6,'¿Cuál es el símbolo químico del oro?'),
(2146,8,'¿Quién escribió Don Quijote de la Mancha?'),
(2147,9,'¿Cuántos jugadores tiene un equipo de fútbol en el campo?'),
(2148,10,'¿Cuál es la estrella más cercana a la Tierra?'),
(2149,11,'¿Cuál es el animal terrestre más grande?'),
(2150,4,'¿Quién fue el primer emperador romano?'),
(2151,5,'¿Cuál es la capital de España?'),
(2152,6,'¿Qué gas es imprescindible para la respiración humana?'),
(2153,12,'¿Cómo se llama el protagonista de la saga cinematográfica Indiana Jones?'),
(2154,13,'¿Qué instrumento musical tiene teclas blancas y negras?'),
(2155,5,'¿Cuál es la montaña más alta del mundo?'),
(2156,4,'¿Qué civilización construyó las pirámides de Egipto?'),
(2157,6,'¿Cuál es la fórmula química del agua?'),
(2158,8,'¿Quién escribió Cien años de soledad?'),
(2159,9,'¿Cada cuántos años se celebran los Juegos Olímpicos?'),
(2160,14,'¿Qué significan las siglas CPU?'),
(2161,10,'¿Cuántos planetas tiene actualmente el sistema solar?'),
(2162,11,'¿Cuál es el animal más grande del planeta?'),
(2163,7,'¿Qué movimiento artístico fue desarrollado por Picasso y Braque?'),
(2164,15,'¿Cuántos días tiene un año bisiesto?'),
(2165,5,'¿Cuál es el país más grande del mundo por superficie?'),
(2166,4,'¿Quién fue conocido como el Libertador de gran parte de Sudamérica?'),
(2167,6,'¿Cuál es la unidad básica de la vida?'),
(2168,13,'¿Quién compuso la Novena Sinfonía?'),
(2169,9,'¿En qué deporte se utiliza una raqueta y una pelota amarilla?'),
(2170,4,'¿Qué muro cayó en 1989 simbolizando el fin de la Guerra Fría?'),
(2171,5,'¿Cuál es la capital de Japón?'),
(2172,6,'¿Qué órgano humano se encarga principalmente de bombear la sangre?'),
(2173,8,'¿Quién escribió Romeo y Julieta?'),
(2174,12,'¿Qué película incluye al personaje Darth Vader?'),
(2175,5,'¿Cuál es la capital de Italia?'),
(2176,6,'¿Qué fuerza mantiene a los planetas orbitando alrededor del Sol?'),
(2177,4,'¿Qué imperio construyó Machu Picchu?'),
(2178,11,'¿Cuál es el felino más grande del mundo?'),
(2179,14,'¿Qué dispositivo se utiliza para mover el cursor en un ordenador?'),
(2180,10,'¿Cuál es el planeta más grande del sistema solar?'),
(2181,13,'¿Qué cantante es conocido como el Rey del Pop?'),
(2182,9,'¿En qué deporte destacó Michael Jordan?'),
(2183,8,'¿Quién escribió La Odisea?'),
(2184,7,'¿Quién pintó La noche estrellada?'),
(2185,5,'¿En qué continente se encuentra Egipto?'),
(2186,6,'¿Qué científico formuló la teoría de la relatividad?'),
(2187,4,'¿Dónde nació la democracia antigua?'),
(2188,16,'¿Cuál es el ingrediente principal del guacamole?'),
(2189,15,'¿Cuántos continentes se reconocen habitualmente?'),
(2190,4,'¿En qué país se encuentra la ciudad antigua de Petra?'),
(2191,5,'¿Cuál es la capital de Portugal?'),
(2192,6,'¿Qué parte de la planta realiza principalmente la fotosíntesis?'),
(2193,12,'¿Quién dirigió la película Titanic?'),
(2194,13,'¿Qué grupo británico lanzó la canción Bohemian Rhapsody?'),
(2195,9,'¿En qué deporte se disputa el torneo de Wimbledon?'),
(2196,14,'¿Qué lenguaje se utiliza principalmente para estructurar páginas web?'),
(2197,10,'¿Cómo se llama nuestra galaxia?'),
(2198,11,'¿Cuál es el animal terrestre más rápido?'),
(2199,16,'¿De qué país es originaria la pizza moderna?'),
(2200,4,'¿Quién fue el primer presidente de Estados Unidos?'),
(2201,5,'¿Cuál es el desierto cálido más grande del mundo?'),
(2202,6,'¿Qué científico propuso las leyes del movimiento y la gravitación universal?'),
(2203,8,'¿Quién escribió El principito?'),
(2204,7,'¿Qué artista pintó los frescos de la Capilla Sixtina?'),
(2205,5,'¿Cuál es la capital de Alemania?'),
(2206,6,'¿Qué vitamina produce principalmente el cuerpo con la exposición al sol?'),
(2207,4,'¿Qué civilización desarrolló un calendario muy avanzado en Mesoamérica?'),
(2208,12,'¿Qué personaje vive en una piña bajo el mar?'),
(2209,13,'¿Qué instrumento toca normalmente un baterista?'),
(2210,9,'¿En qué país nació el fútbol moderno?'),
(2211,14,'¿Qué empresa creó el sistema operativo Windows?'),
(2212,10,'¿Qué planeta es famoso por sus anillos?'),
(2213,11,'¿Qué animal es conocido como el rey de la selva?'),
(2214,16,'¿Cuál es el ingrediente principal del sushi tradicional?'),
(2215,4,'¿Quién fue Napoleón Bonaparte?'),
(2216,5,'¿Cuál es la capital de Argentina?'),
(2217,6,'¿Qué elemento químico tiene el símbolo Fe?'),
(2218,8,'¿Quién escribió La metamorfosis?'),
(2219,7,'¿Qué artista español creó el personaje Don Quijote en ilustraciones famosas?'),
(2220,5,'¿Cuál es la capital de Canadá?'),
(2221,6,'¿Qué órgano del cuerpo humano permite respirar?'),
(2222,4,'¿Qué famoso faraón fue enterrado en una tumba encontrada casi intacta en 1922?'),
(2223,12,'¿Cómo se llama el ogro protagonista de una famosa saga de películas de animación?'),
(2224,13,'¿Qué compositor creó la ópera La flauta mágica?'),
(2225,9,'¿Cuántos puntos vale un triple en baloncesto?'),
(2226,14,'¿Qué significa la sigla WWW?'),
(2227,10,'¿Cuál es el planeta más cercano al Sol?'),
(2228,11,'¿Qué animal produce lana?'),
(2229,16,'¿Cuál es el ingrediente principal del hummus?'),
(2230,4,'¿Qué pueblo antiguo creó la democracia ateniense?'),
(2231,5,'¿Cuál es la capital de México?'),
(2232,6,'¿Qué científico desarrolló la teoría de la evolución por selección natural?'),
(2233,8,'¿Quién escribió Los viajes de Gulliver?'),
(2234,7,'¿Qué pintor español creó el cuadro Guernica?'),
(2235,5,'¿Cuál es la isla más grande del mundo?'),
(2236,6,'¿Cuántos huesos tiene aproximadamente un adulto?'),
(2237,4,'¿Quién fue Julio César?'),
(2238,12,'¿Qué actor interpretó a Jack en Titanic?'),
(2239,13,'¿Qué grupo musical formaron John Lennon y Paul McCartney?'),
(2240,5,'¿Cuál es la capital de Brasil?'),
(2241,6,'¿Qué parte del átomo tiene carga negativa?'),
(2242,4,'¿En qué país surgió la Revolución Industrial?'),
(2243,12,'¿Cómo se llama el ratón protagonista de Disney?'),
(2244,13,'¿Qué cantante española es conocida por la canción Despechá?'),
(2245,9,'¿Cuántos jugadores forman un equipo de baloncesto en pista?'),
(2246,14,'¿Qué empresa desarrolló el buscador Google?'),
(2247,10,'¿Cómo se llama el satélite natural de la Tierra?'),
(2248,11,'¿Qué animal es conocido por cambiar de color?'),
(2249,16,'¿Qué bebida se obtiene principalmente de la fermentación de la uva?'),
(2250,4,'¿Qué reina egipcia tuvo relación con Julio César y Marco Antonio?'),
(2251,5,'¿Cuál es la capital de Grecia?'),
(2252,6,'¿Qué científico descubrió la radiactividad junto con Pierre Curie?'),
(2253,8,'¿Quién escribió La Divina Comedia?'),
(2254,7,'¿Qué artista español creó el surrealismo con obras como La persistencia de la memoria?'),
(2255,5,'¿Cuál es el río que atraviesa Egipto?'),
(2256,6,'¿Qué planeta habitamos los seres humanos?'),
(2257,4,'¿Qué guerra enfrentó principalmente a Atenas y Esparta?'),
(2258,14,'¿Qué significa la sigla USB?'),
(2259,9,'¿En qué deporte se utiliza una portería y un balón con las manos?'),
(2260,5,'¿Cuál es la capital de Australia?'),
(2261,6,'¿Qué sangre circula por las arterias desde el corazón hacia el cuerpo?'),
(2262,4,'¿Qué pueblo construyó el Coliseo de Roma?'),
(2263,12,'¿Qué película cuenta la historia de un barco que choca contra un iceberg?'),
(2264,13,'¿Qué instrumento tiene seis cuerdas normalmente?'),
(2265,9,'¿En qué deporte se utiliza un bate y una pelota?'),
(2266,14,'¿Qué empresa creó el iPhone?'),
(2267,10,'¿Qué fenómeno ocurre cuando la Luna se interpone entre la Tierra y el Sol?'),
(2268,11,'¿Qué animal es conocido por tener una trompa larga?'),
(2269,16,'¿Cuál es el ingrediente principal de las tortillas mexicanas tradicionales?'),
(2270,4,'¿Qué explorador llegó a América en 1492?'),
(2271,5,'¿Cuál es la capital de Francia?'),
(2272,6,'¿Qué científico descubrió la penicilina?'),
(2273,8,'¿Quién escribió El Quijote?'),
(2274,7,'¿Qué material utiliza principalmente un escultor que trabaja con mármol?'),
(2275,5,'¿Cuál es el río más largo del mundo según muchas mediciones?'),
(2276,6,'¿Qué sentido permite percibir los sonidos?'),
(2277,4,'¿Qué civilización construyó las ciudades de Tikal y Palenque?'),
(2278,12,'¿Qué director creó la trilogía de El Señor de los Anillos en cine?'),
(2279,13,'¿Qué instrumento pertenece a la familia de viento?'),
(2280,9,'¿Qué país ganó el Mundial de fútbol de 2022?'),
(2281,14,'¿Qué dispositivo permite realizar llamadas y conectarse a internet?'),
(2282,10,'¿Qué nombre recibe el conjunto formado por una estrella y los cuerpos que orbitan a su alrededor?'),
(2283,11,'¿Cuál es el árbol que produce bellotas?'),
(2284,16,'¿Cuál es el ingrediente principal del gazpacho tradicional?'),
(2285,4,'¿Qué antigua ciudad fue sepultada por el volcán Vesubio?'),
(2286,5,'¿En qué continente está España?'),
(2287,6,'¿Qué parte del cerebro coordina principalmente el equilibrio?'),
(2288,8,'¿Qué personaje literario vive en una casa de Baker Street?'),
(2289,7,'¿Qué arquitecto diseñó la Sagrada Familia de Barcelona?'),
(2290,5,'¿Cuál es el país más poblado del mundo actualmente?'),
(2291,6,'¿Qué gas absorben las plantas durante la fotosíntesis?'),
(2292,4,'¿Quién fue conocido como el Gran Alejandro?'),
(2293,12,'¿Qué superhéroe tiene como identidad a Bruce Wayne?'),
(2294,13,'¿Qué compositor perdió la audición al final de su vida?'),
(2295,9,'¿Cuántos anillos tiene el símbolo olímpico?'),
(2296,14,'¿Qué empresa creó el sistema operativo Android?'),
(2297,10,'¿Qué estrella está en el centro del sistema solar?'),
(2298,11,'¿Qué mamífero es capaz de volar?'),
(2299,16,'¿Qué fruta se utiliza para hacer aceite de oliva?'),
(2300,4,'¿Qué tratado puso fin oficialmente a la Primera Guerra Mundial?'),
(2301,5,'¿Cuál es la capital de Turquía?'),
(2302,6,'¿Qué parte de la célula contiene el material genético?'),
(2303,8,'¿Quién escribió Frankenstein?'),
(2304,12,'¿Qué personaje dice la frase \'Hasta la vista, baby\'?'),
(2305,13,'¿Qué compositor creó Las cuatro estaciones?'),
(2306,9,'¿En qué deporte se utiliza un volante o pluma?'),
(2307,14,'¿Qué significa la sigla IA?'),
(2308,10,'¿Cómo se llama la explosión final de una estrella masiva?'),
(2309,11,'¿Qué animal es famoso por construir presas?'),
(2310,16,'¿Qué país es famoso por el plato llamado paella?'),
(2311,4,'¿Qué civilización utilizaba jeroglíficos?'),
(2312,5,'¿Cuál es la capital de Italia?'),
(2313,6,'¿Qué instrumento se utiliza para medir la temperatura?'),
(2314,8,'¿Quién creó al personaje de Harry Potter?'),
(2315,7,'¿Qué estilo artístico predominó en muchas catedrales medievales?'),
(2316,5,'¿Cuál es la montaña más alta de África?'),
(2317,6,'¿Cuántos sentidos tradicionales tiene el ser humano?'),
(2318,4,'¿Quién fue conocido como el rey del Imperio francés?'),
(2319,12,'¿Qué personaje es un ogro verde?'),
(2320,13,'¿Qué cantante es conocido como el Rey del Rock and Roll?'),
(2321,9,'¿Cuántos jugadores tiene un equipo de fútbol en el campo?'),
(2322,14,'¿Qué aparato se usa para imprimir documentos?'),
(2323,10,'¿Qué es un cometa?'),
(2324,11,'¿Cuál es el animal terrestre más grande?'),
(2325,16,'¿Qué país es famoso por el sushi?'),
(2326,4,'¿Qué muro cayó en 1989 simbolizando el fin de la Guerra Fría?'),
(2327,5,'¿Cuál es la capital de Japón?'),
(2328,6,'¿Qué científico formuló la teoría de la evolución?'),
(2329,8,'¿Quién escribió Romeo y Julieta?'),
(2330,7,'¿Qué pintor creó la Mona Lisa?'),
(2331,5,'¿Cuál es el océano más grande del planeta?'),
(2332,6,'¿Qué planeta es conocido como el planeta rojo?'),
(2333,4,'¿Qué civilización construyó las pirámides de Guiza?'),
(2334,12,'¿Qué película de animación tiene personajes llamados Woody y Buzz Lightyear?'),
(2335,13,'¿Qué instrumento tiene teclas blancas y negras?'),
(2336,9,'¿En qué deporte destacó Rafael Nadal?'),
(2337,14,'¿Qué red conecta ordenadores a nivel mundial?'),
(2338,10,'¿Qué instrumento permite observar objetos lejanos en el espacio?'),
(2339,11,'¿Qué ave no puede volar y vive en la Antártida?'),
(2340,16,'¿Qué ingrediente se obtiene de la leche y se usa en muchos postres?'),
(2341,4,'¿Quién fue el primer ser humano en pisar la Luna?'),
(2342,5,'¿Cuál es la capital de Rusia?'),
(2343,6,'¿Qué científico es considerado el padre de la física moderna?'),
(2344,8,'¿Qué detective fue creado por Arthur Conan Doyle?'),
(2345,7,'¿Qué movimiento artístico inició Pablo Picasso junto con Braque?'),
(2346,5,'¿Cuál es el país más grande del mundo por superficie?'),
(2347,6,'¿Qué órgano bombea la sangre por el cuerpo?'),
(2348,4,'¿Qué antigua ciudad griega fue famosa por sus guerreros?'),
(2349,12,'¿Qué saga cinematográfica incluye al personaje Darth Vader?'),
(2350,13,'¿Qué cantante interpretó la canción Thriller?'),
(2351,9,'¿Qué país ganó el Mundial de fútbol de 2010?'),
(2352,14,'¿Qué aparato convierte documentos físicos en archivos digitales?'),
(2353,10,'¿Cómo se llama la galaxia vecina más cercana a la Vía Láctea?'),
(2354,11,'¿Qué insecto produce miel?'),
(2355,16,'¿Qué especia es conocida como azafrán?'),
(2356,4,'¿Qué imperio tuvo su capital en Constantinopla?'),
(2357,5,'¿Cuál es la capital de Egipto?'),
(2358,6,'¿Qué unidad se utiliza para medir la fuerza?'),
(2359,8,'¿Qué escritor creó a Don Quijote de la Mancha?'),
(2360,7,'¿Qué color se obtiene al mezclar azul y amarillo?'),
(2361,5,'¿Cuál es la capital de Noruega?'),
(2362,6,'¿Cuál es el símbolo químico del oro?'),
(2363,4,'¿Qué faraón ordenó construir una de las mayores pirámides de Guiza?'),
(2364,12,'¿Qué actor interpretó a Iron Man en el Universo Marvel?'),
(2365,13,'¿Qué banda lanzó el álbum The Dark Side of the Moon?'),
(2366,9,'¿En qué deporte se utiliza una raqueta y una pelota amarilla?'),
(2367,14,'¿Qué significa la sigla CPU?'),
(2368,10,'¿Qué planeta tiene la Gran Mancha Roja?'),
(2369,11,'¿Cuál es el animal terrestre más alto?'),
(2370,16,'¿Qué bebida se prepara con granos tostados y molidos?'),
(2371,4,'¿Quién fue conocido como el Libertador de varios países sudamericanos?'),
(2372,5,'¿Cuál es la capital de Irlanda?'),
(2373,6,'¿Qué planeta está más cerca de la Tierra?'),
(2374,8,'¿Quién escribió La isla del tesoro?'),
(2375,7,'¿Qué artista pintó Las meninas?'),
(2376,5,'¿Qué país tiene forma alargada en la costa oeste de Sudamérica?'),
(2377,6,'¿Qué vitamina se asocia con los cítricos como la naranja?'),
(2378,4,'¿Qué acontecimiento comenzó en 1939?'),
(2379,12,'¿Cómo se llama el león protagonista de El Rey León?'),
(2380,13,'¿Qué instrumento toca un violinista?'),
(2381,9,'¿Qué piloto español ganó varios campeonatos de Fórmula 1?'),
(2382,14,'¿Qué empresa creó la consola PlayStation?'),
(2383,10,'¿Cuántos planetas tiene el sistema solar?'),
(2384,11,'¿Qué animal es conocido por su gran inteligencia marina?'),
(2385,16,'¿De qué país procede tradicionalmente el curry?'),
(2386,4,'¿Qué reina española apoyó el viaje de Colón?'),
(2387,5,'¿Cuál es la capital de España?'),
(2388,6,'¿Qué instrumento permite ver objetos muy pequeños?'),
(2389,8,'¿Quién escribió 20.000 leguas de viaje submarino?'),
(2390,5,'¿Cuál es la capital de Canadá?'),
(2391,6,'¿Qué planeta es famoso por sus anillos?'),
(2392,4,'¿Quién fue el primer emperador romano?'),
(2393,12,'¿Qué película ganó el Óscar a mejor película en 1998 y trata sobre un barco hundido?'),
(2394,13,'¿Cuántas notas musicales básicas hay en la escala occidental?'),
(2395,9,'¿En qué deporte destacó Michael Jordan?'),
(2396,14,'¿Qué empresa creó Windows?'),
(2397,10,'¿Qué planeta tarda aproximadamente 365 días en dar una vuelta al Sol?'),
(2398,11,'¿Qué animal es conocido como el rey de la selva?'),
(2399,16,'¿Qué ingrediente principal lleva el hummus tradicional?'),
(2400,4,'¿Qué revolución comenzó en Francia en 1789?'),
(2401,5,'¿Cuál es la capital de Portugal?'),
(2402,6,'¿Qué científico formuló las leyes del movimiento y la gravedad?'),
(2403,8,'¿Quién escribió El principito?'),
(2404,7,'¿Qué escultor creó el David de Florencia?'),
(2405,5,'¿En qué continente está Brasil?'),
(2406,6,'¿Qué gas necesitamos para respirar?'),
(2407,4,'¿Qué pueblo creó Machu Picchu?'),
(2408,12,'¿Qué saga tiene como protagonista a Harry Potter?'),
(2409,13,'¿Qué grupo británico cantaba Bohemian Rhapsody?'),
(2410,9,'¿Qué país organizó los Juegos Olímpicos de 1992?'),
(2411,14,'¿Qué lenguaje se utiliza habitualmente para crear páginas web junto con CSS y JavaScript?'),
(2412,10,'¿Qué nombre recibe una agrupación de estrellas que forma una figura aparente?'),
(2413,11,'¿Cuál es el animal terrestre más rápido?'),
(2414,16,'¿De qué país es originaria la pizza tradicional?'),
(2415,4,'¿Qué civilización inventó la democracia en Atenas?'),
(2416,5,'¿Cuál es la capital de Alemania?'),
(2417,6,'¿Cuál es la fórmula química del agua?'),
(2418,8,'¿Quién escribió 1984?'),
(2419,7,'¿En qué museo se encuentra la Mona Lisa?'),
(2420,12,'¿Cómo se llama el muñeco vaquero de Toy Story?'),
(2421,13,'¿Qué cantante fue conocido como el Rey del Pop?'),
(2422,9,'¿Cuánto dura un partido de fútbol profesional normalmente?'),
(2423,14,'¿Qué dispositivo se utiliza para mover el cursor del ordenador?'),
(2424,10,'¿Qué planeta es el más grande del sistema solar?'),
(2425,11,'¿Qué animal tiene rayas negras y blancas?'),
(2426,16,'¿Qué alimento producen las abejas?'),
(2427,4,'¿Quién fue el líder sudafricano que luchó contra el apartheid?'),
(2428,5,'¿Cuál es la montaña más alta del mundo?'),
(2429,6,'¿Qué órgano utilizamos principalmente para ver?'),
(2430,8,'¿Quién escribió La metamorfosis?'),
(2431,7,'¿Qué pintor español creó el cuadro Guernica?'),
(2432,5,'¿Cuál es la capital de Australia?'),
(2433,6,'¿Qué científico desarrolló la teoría de la relatividad?'),
(2434,4,'¿Qué explorador llegó a América en 1492?'),
(2435,12,'¿Cómo se llama el ogro protagonista de una famosa saga de animación?'),
(2436,13,'¿Qué compositor creó la Novena Sinfonía?'),
(2437,9,'¿En qué deporte se disputa el Tour de Francia?'),
(2438,14,'¿Qué empresa desarrolló el buscador Google?'),
(2439,10,'¿Qué cuerpo celeste orbita alrededor de la Tierra?'),
(2440,11,'¿Cuál es el animal más grande conocido actualmente?'),
(2441,16,'¿Qué plato español está hecho principalmente con arroz?'),
(2442,4,'¿Qué imperio construyó una gran red de carreteras en América del Sur?'),
(2443,5,'¿Cuál es la capital de Francia?'),
(2444,6,'¿Qué fuerza mantiene a los planetas orbitando alrededor del Sol?'),
(2445,8,'¿Quién escribió El señor de los anillos?'),
(2446,7,'¿Qué movimiento artístico está asociado con Salvador Dalí?'),
(2447,12,'¿Qué director creó la película E.T.?'),
(2448,13,'¿Qué instrumento suele tener seis cuerdas?'),
(2449,9,'¿Qué país inventó el judo?'),
(2450,14,'¿Qué dispositivo almacena archivos digitales?'),
(2451,10,'¿Qué planeta está más alejado del Sol?'),
(2452,11,'¿Qué árbol produce piñas?'),
(2453,16,'¿Qué fruta amarilla es rica en potasio?'),
(2454,4,'¿Qué ciudad fue conocida como la capital del Imperio romano?'),
(2455,5,'¿Cuál es el río más largo del mundo según muchas mediciones modernas?'),
(2456,6,'¿Qué científico descubrió la penicilina?'),
(2457,8,'¿Qué personaje vive aventuras junto a Sancho Panza?'),
(2458,7,'¿Qué edificio famoso diseñó Gaudí en Barcelona?'),
(2459,12,'¿Qué superhéroe lleva un escudo con una estrella?'),
(2460,13,'¿Qué instrumento toca normalmente un pianista?'),
(2461,9,'¿Cuántos jugadores forman un equipo de baloncesto en pista?'),
(2462,14,'¿Qué significa la sigla USB?'),
(2463,10,'¿Qué fenómeno ocurre cuando la Luna se interpone entre la Tierra y el Sol?'),
(2464,11,'¿Qué animal es conocido por cambiar de color para camuflarse?'),
(2465,16,'¿Cuál es el ingrediente principal del guacamole?'),
(2466,4,'¿Qué civilización construyó el Coliseo de Roma?'),
(2467,5,'¿Cuál es la capital de Italia?'),
(2468,6,'¿Qué elemento químico tiene el símbolo Fe?'),
(2469,8,'¿Qué escritor creó al personaje Sherlock Holmes?'),
(2470,7,'¿Qué famoso museo está situado en Madrid y alberga obras de Velázquez y Goya?'),
(2471,12,'¿Qué película de ciencia ficción presenta al personaje Neo?'),
(2472,13,'¿Qué banda británica estaba formada por John Lennon, Paul McCartney, George Harrison y Ringo Starr?'),
(2473,9,'¿Qué deporte practica un nadador?'),
(2474,14,'¿Qué empresa creó el iPhone?'),
(2475,10,'¿Cómo se llama nuestra galaxia?'),
(2476,11,'¿Qué animal doméstico suele llamarse el mejor amigo del hombre?'),
(2477,16,'¿Qué bebida se obtiene de las hojas del té?'),
(2478,4,'¿Qué líder impulsó la independencia de la India mediante la resistencia no violenta?'),
(2479,5,'¿Qué país tiene como capital Buenos Aires?'),
(2480,6,'¿Qué parte de la planta absorbe agua del suelo?'),
(2481,4,'¿Quién fue el emperador francés conocido por sus conquistas en Europa?'),
(2482,5,'¿Cuál es el desierto cálido más grande del mundo?'),
(2483,6,'¿Qué científico propuso la teoría de la evolución por selección natural?'),
(2484,8,'¿Quién escribió Romeo y Julieta?'),
(2485,7,'¿Qué pintor neerlandés creó La noche estrellada?'),
(2486,12,'¿Cómo se llama el protagonista de la saga Indiana Jones?'),
(2487,13,'¿Qué compositor fue conocido como el niño prodigio de la música clásica?'),
(2488,9,'¿En qué deporte se utiliza un bate y una pelota?'),
(2489,14,'¿Qué componente muestra imágenes en un ordenador?'),
(2490,10,'¿Qué estrella está en el centro del sistema solar?'),
(2491,11,'¿Qué mamífero pone huevos?'),
(2492,16,'¿Qué pasta italiana tiene forma de tubos?'),
(2493,4,'¿Qué muro cayó en Berlín en 1989?'),
(2494,5,'¿En qué continente está Japón?'),
(2495,6,'¿Qué parte del cuerpo humano contiene el cerebro?'),
(2496,8,'¿Qué personaje literario es un vampiro creado por Bram Stoker?'),
(2497,7,'¿Qué estilo arquitectónico tiene arcos apuntados y grandes vidrieras?'),
(2498,12,'¿Qué actor interpretó a Jack Sparrow?'),
(2499,13,'¿Qué instrumento tiene teclas blancas y negras?'),
(2500,9,'¿Qué tenista español ganó múltiples Roland Garros?'),
(2501,14,'¿Qué significa la palabra \'internet\' en relación con redes?'),
(2502,10,'¿Qué objeto espacial es un fragmento rocoso que orbita alrededor del Sol?'),
(2503,11,'¿Qué animal tiene una trompa larga?'),
(2504,16,'¿Qué alimento se obtiene de las uvas fermentadas?'),
(2505,4,'¿Quién fue conocido por la frase \'Tengo un sueño\'?'),
(2506,5,'¿Cuál es la capital de Grecia?'),
(2507,6,'¿Qué instrumento mide la temperatura?'),
(2508,8,'¿Quién escribió La divina comedia?'),
(2509,7,'¿Qué arquitecto diseñó la Casa Batlló de Barcelona?'),
(2510,6,'¿Qué científico formuló la teoría heliocéntrica que situaba al Sol en el centro?'),
(2511,4,'¿Qué antigua civilización construyó las pirámides de Egipto?'),
(2512,5,'¿Cuál es la capital de México?'),
(2513,6,'¿Qué estado del agua tiene forma sólida?'),
(2514,8,'¿Qué detective fue creado por Agatha Christie?'),
(2515,7,'¿Qué técnica artística utiliza pequeñas piezas de vidrio o piedra para crear imágenes?'),
(2516,12,'¿Qué película animada tiene como protagonista a una princesa llamada Elsa?'),
(2517,13,'¿Qué cantante es conocido como el Rey del Rock?'),
(2518,9,'¿Cuántos anillos tiene el símbolo olímpico?'),
(2519,14,'¿Qué sistema operativo utilizan muchos teléfonos móviles?'),
(2520,10,'¿Cómo se llama el primer hombre que viajó al espacio?'),
(2521,11,'¿Qué animal produce lana?'),
(2522,16,'¿Qué ingrediente da picor a muchos platos mexicanos?'),
(2523,4,'¿Qué documento inglés de 1215 limitó el poder del rey?'),
(2524,5,'¿Cuál es la isla más grande del mundo?'),
(2525,6,'¿Qué científico estudió la electricidad y los rayos con una cometa?'),
(2526,8,'¿Qué novela comienza con un personaje llamado Gregor Samsa?'),
(2527,7,'¿Qué material utiliza principalmente un escultor que trabaja con mármol?'),
(2528,12,'¿Qué saga cinematográfica está ambientada en la Tierra Media?'),
(2529,13,'¿Qué compositor creó Las cuatro estaciones?'),
(2530,9,'¿En qué deporte se usa una raqueta y un volante?'),
(2531,14,'¿Qué unidad se utiliza normalmente para medir almacenamiento digital?'),
(2532,10,'¿Qué planeta es conocido como el planeta rojo?'),
(2533,11,'¿Qué ave no puede volar y vive en la Antártida?'),
(2534,16,'¿Qué dulce español se consume tradicionalmente en Navidad?');
/*!40000 ALTER TABLE `pregunta` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `respuesta`
--
DROP TABLE IF EXISTS `respuesta`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `respuesta` (
`idRespuesta` int(11) NOT NULL AUTO_INCREMENT,
`idPregunta` int(11) NOT NULL,
`nombreRespuesta` varchar(255) NOT NULL,
`correcta` tinyint(1) DEFAULT 0,
PRIMARY KEY (`idRespuesta`),
KEY `idPregunta` (`idPregunta`),
CONSTRAINT `respuesta_ibfk_1` FOREIGN KEY (`idPregunta`) REFERENCES `pregunta` (`idPregunta`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_spanish_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `respuesta`
--
LOCK TABLES `respuesta` WRITE;
/*!40000 ALTER TABLE `respuesta` DISABLE KEYS */;
/*!40000 ALTER TABLE `respuesta` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `respuestaalmacenada`
--
DROP TABLE IF EXISTS `respuestaalmacenada`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `respuestaalmacenada` (
`idRespuestaAlmacenada` int(11) NOT NULL AUTO_INCREMENT,
`idPartidaxPregunta` int(11) NOT NULL,
`idUsuario` int(11) NOT NULL,
`idRespuesta` int(11) NOT NULL,
`primero` tinyint(1) DEFAULT 0,
PRIMARY KEY (`idRespuestaAlmacenada`),
KEY `idPartidaxPregunta` (`idPartidaxPregunta`),
KEY `idUsuario` (`idUsuario`),
KEY `idRespuesta` (`idRespuesta`),
CONSTRAINT `respuestaalmacenada_ibfk_1` FOREIGN KEY (`idPartidaxPregunta`) REFERENCES `partidaxpregunta` (`idPartidaxPregunta`) ON DELETE CASCADE,
CONSTRAINT `respuestaalmacenada_ibfk_2` FOREIGN KEY (`idUsuario`) REFERENCES `usuario` (`idUsuario`) ON DELETE CASCADE,
CONSTRAINT `respuestaalmacenada_ibfk_3` FOREIGN KEY (`idRespuesta`) REFERENCES `respuesta` (`idRespuesta`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_spanish_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `respuestaalmacenada`
--
LOCK TABLES `respuestaalmacenada` WRITE;
/*!40000 ALTER TABLE `respuestaalmacenada` DISABLE KEYS */;
/*!40000 ALTER TABLE `respuestaalmacenada` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `usuario`
--
DROP TABLE IF EXISTS `usuario`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `usuario` (
`idUsuario` int(11) NOT NULL AUTO_INCREMENT,
`nombreUsuario` varchar(50) NOT NULL,
`contrasena` varchar(100) NOT NULL,
`email` varchar(50) NOT NULL,
`avatar` varchar(200) DEFAULT NULL,
`cookie` varchar(200) DEFAULT NULL,
`aciertos` int(11) NOT NULL,
`victorias` int(11) NOT NULL,
`derrotas` int(11) NOT NULL,
PRIMARY KEY (`idUsuario`),
UNIQUE KEY `email` (`email`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_spanish_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `usuario`
--
LOCK TABLES `usuario` WRITE;
/*!40000 ALTER TABLE `usuario` DISABLE KEYS */;
/*!40000 ALTER TABLE `usuario` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Dumping routines for database 'triviagmatico'
--
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*M!100616 SET NOTE_VERBOSITY=@OLD_NOTE_VERBOSITY */;
-- Dump completed on 2026-09-25 9:33:39