'La categoría, la pregunta y todas las respuestas son obligatorias.' ]); break; } /* * ========================================== * 1. CREAMOS LA PREGUNTA * ========================================== */ $pregunta = new Pregunta( $idCategoria, $nombrePregunta ); $resultadoPregunta = $pregunta->guardar(); if (isset($resultadoPregunta['error'])) { echo json_encode($resultadoPregunta); break; } // Obtenemos el ID de la pregunta creada $idPregunta = (int)$resultadoPregunta['exito_tecnico']; /* * ========================================== * 2. CREAMOS LAS RESPUESTAS * ========================================== */ $respuestas = [ [ 'texto' => $respuestaCorrecta, 'correcta' => 1 ], [ 'texto' => $respuestaIncorrecta1, 'correcta' => 0 ], [ 'texto' => $respuestaIncorrecta2, 'correcta' => 0 ], [ 'texto' => $respuestaIncorrecta3, 'correcta' => 0 ] ]; foreach ($respuestas as $respuesta) { $objRespuesta = new Respuesta( null, $idPregunta, $respuesta['texto'], $respuesta['correcta'] ); $resultadoRespuesta = $objRespuesta->insertar(); if (isset($resultadoRespuesta['error'])) { echo json_encode($resultadoRespuesta); break 2; } } /* * ========================================== * 3. TODO CORRECTO * ========================================== */ echo json_encode([ 'exito' => 'Pregunta creada correctamente.', 'idPregunta' => $idPregunta ]); 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; }