Script de creación Base de datos

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Álvaro García González</title>
    <link rel="stylesheet" href="../webroot/css/estilos.css"/>
</head>
<body>
    <?php /*
     * Nombre: Alvaro Garcia Gonzalez
     * Fecha: 07/11/2025
     * Uso: Conexión base de datos */ ?>
    <header>
        <h1>Ejercico 3 Tema 4</h1>
        <a href="../indexProyectoTema4.php"><button name="Volver">Volver</button></a>
    </header>
        
    <?php
    
    /*
     * @author: Alvaro Garcia Gonzalez
     * @since: 07/11/2025
     * Uso:Construir un formulario para recoger un cuestionario realizado a una persona y mostrar en la misma página las preguntas 
     * y las respuestas recogidas; en el caso de que alguna respuesta esté vacía o errónea volverá a salir el formulario con el mensaje correspondiente, 
     * pero las respuestas que habíamos tecleado correctamente aparecerán en el formulario y no tendremos que volver a teclearlas.
     */
        
    require_once '../config/ConfDBPDO.php';
    
    //array con los nombres de los atributos de PDO
    
    
        try{
            //conexion base de datos
            $miDB = new PDO(DNS,USERNAME,PASSWORD);
            $miDB->exec("use DBAGGDWESProyectoTema4;");
            //$miDB->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
            $fecha= new DateTime("now",new DateTimeZone('Europe/Madrid'));
            $fecha_formateada=$fecha->format("N-m-Y");
            //llamamiento a la libreria
            require_once '../core/231018libreriaValidacion.php';
            //establecimiento de la zon horaria
            date_default_timezone_set("Europe/Madrid");
            //declaracion de las variables
            $aErrores=
            [
                'codigoDepartamento' =>null,
                'descripcionDepartamento' =>null,
                'volumenDepartamento' =>null,
                'codigoExiste' =>null
            ];
            $aRespuestas=
            [
                'codigoDepartamento' =>null,
                'descripcionDepartamento' =>null,
                'volumenDepartamento' =>null
            ];
            
            
            
            
     
            $fecha_actual = new DateTime("now",new DateTimeZone('Europe/Madrid'));
            $entradaOK=true; //variable boolean para enviar el formulario
            //consulta para buscar si el departamento ya existe con el codigo recibido
            
            
            
            $departamentoExiste=true;//variable boolean que controla si el departamento ya existe
            //array donde recojo los mensajes de error de cada campo
            
            
            
            if(isset($_REQUEST['enviar'])){
            $aErrores['codigoDepartamento']=validacionFormularios::comprobarAlfabetico($_REQUEST['codigoDepartamento'],3,3,1);
            $aErrores['descripcionDepartamento']=validacionFormularios::comprobarAlfabetico($_REQUEST['descripcionDepartamento'], obligatorio: 1);    
            $aErrores['volumenDepartamento']=validacionFormularios::comprobarFloat($_REQUEST['volumenDepartamento'], obligatorio: 1);
            foreach ($aErrores as $clave => $valor){
                if($valor!=null){
                    $entradaOK=false;
                }else{
                    if (!isset($_REQUEST[$clave]) || $_REQUEST[$clave] === "") {//no uso empty porque daria error si el valor de volumen es 0
                        $aRespuestas[$clave] = null;
                    } else {
                        $aRespuestas[$clave] = $_REQUEST[$clave];
                    }
                }
            }

                                                                                            //el %...% es para que si esta vacio, muestre todos
            $consultasql=$miDB->query("SELECT * FROM T02_Departamento WHERE T02_CodDepartamento='%{$aRespuestas['codigoDepartamento']}%'");//->fetchAll(PDO::FETCH_OBJ);
            $resultado=$consultasql;
            if(($resultado->rowCount())>0){
                $departamentoExiste= true;
                $aErrores['codigoExiste']='Este codigo ya existe';
            }else{
                $departamentoExiste=false;
            }
        }
        
        
        if($entradaOK==true && $departamentoExiste==false){
            //codigo que se ejecuta cuando envias el formulario
            
            //insert del departamento correspondiente
            $qinssertSQL="insert into T02_Departamento values
            ('{$aRespuestas['codigoDepartamento']}','{$aRespuestas['descripcionDepartamento']}',{$aRespuestas['volumenDepartamento']},now(),null);";
            
            echo "<pre>$qinssertSQL</pre>";
            $miDB->query($qinssertSQL);
            $qConsulta = $miDB->query('select * from T02_Departamento');
            echo '<table class="departamento">';
            echo '<tr>';
            echo '<th>T02_CodDepartamento</th>';
            echo '<th>T02_DescDepartamento</th>';
            echo '<th>T02_VolumenDeNegocio</th>';
            echo '<th>T02_FechaCreacionDepartamento</th>';
            echo '<th>T02_FechaBajaDepartamento</th>';
            echo '</tr>';
            //el bucle while se ejecuta hasta que se acaban las filas, ya que cuando eso ocurre fetch() devuelve false
            //declaramos la variable $registro  para poder trabajar con los valores
            while ($registro = $qConsulta->fetchObject()) {
                echo '<tr>';
                echo '<td>' . $registro->T02_CodDepartamento . '</td>';
                $sDescripcion = strtoupper($registro->T02_DescDepartamento);
                echo '<td>' . $sDescripcion . '</td>';
                echo '<td>' . number_format($registro->T02_VolumenDeNegocio, 2, ',', '.') . ' €</td>';
                echo '<td>' . $registro->T02_FechaCreacionDepartamento . '</td>';
                echo '<td>' . $registro->T02_FechaBajaDepartamento . '</td>';
                echo '</tr>';
            }
          
            echo '</table>';
            
            //forma incorrecta (con claves de array nombradas con comas)
            /*foreach ($aRespuestas as $clave =>$valor){
                $aPalabras= explode(',', $clave);
                echo ('<p class="saltar">');
                foreach ($aPalabras as $palabra) {
                    echo ($palabra.' ');
                }
                echo(': '.$valor);
                echo ('</p>');
            }*/
        }else{
            //codigo que se ejecuta antes de enviar el formulario
            ?>
            
    <div class="formulario">       
    <form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post">
        <div class="centrar">
            <p class="error"><?php echo($aErrores['codigoExiste'])?></p>
            <p>
              <label>1. Codigo del departamento (3 letras en mayuscula)</label><br>
              <input class="obligatorio" type="text" name="codigoDepartamento" 
                     value="<?php echo (isset($_REQUEST['codigoDepartamento'])?$_REQUEST['codigoDepartamento']:''); ?>" 
                     placeholder="ABC">
              <p class="error"><?php echo($aErrores['codigoDepartamento'])?></p>
            </p>

            <p>
              <label>2. Descripcion del departamento</label><br>
              <input class="obligatorio" type="text" name="descripcionDepartamento"
                     value="<?php echo (isset($_REQUEST['descripcionDepartamento'])?$_REQUEST['descripcionDepartamento']:''); ?>">
              <p class="error"><?php echo($aErrores['descripcionDepartamento'])?></p>
            </p>

            <p>
              <label>3. Volumen de negocio inicial (se permiten 2 decimales)</label><br>
              <input class="obligatorio" type="number" name="volumenDepartamento" min="0" step="0.01" value="<?php echo (isset($_REQUEST['volumenDepartamento'])?$_REQUEST['volumenDepartamento']:''); ?>">
              <p class="error"><?php echo($aErrores['volumenDepartamento'])?></p>
            </p>
            
            <p>
              <label>4. Fecha de creacion inical</label><br>
              <input type="date" name="fechaInicial" disabled placeholder="<?php echo($fecha_actual->format("N-m-Y")); ?>">
            </p>
            
            <div id="enviarCancelar">
                <p>
                  <input type="submit" name="enviar" value="enviar">
                  <p class="error"><?php echo($aErrores['codigoExiste'])?></p>
                </p>
                <a href="../indexProyectoTema4.php"><button name="Cancelar">Cancelar</button></a>
            </div>
        </div>
    </form>
    </div> 
        <?php
        }
        ?>
        <?php
        } catch (PDOException $miExceptionPDO){
            echo'Error: '.$miExceptionPDO->getMessage();
            echo '<br>';
            echo'Código de error: '.$miExceptionPDO->getCode();
        } finally {
            unset($miDB);
        }
        ?>
    <footer>
        <p><a href="../../index.html">Álvaro García González</a></p>
        <p>Última actualización <time datetime="2025-11-10">10/11/2025</time></p>
    </footer>
</body>
</html>