0

PHPでOOPについて学んでいます。小劇場の予約システムを作る宿題を出されました。予約を行うために名前を挿入する機能のみを持つ単純なデータベースから始めました。

では、なぜこれで完全に空白のページが表示されるのでしょうか? これはゼロから始める最初の試みであるため、複数のエラーがあると思いますが、なぜ何も得られないのですか...まったく?

<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);

/* Sistema de reserva de asientos en un complejo con 2 salas donde
se pueden reservar asientos para cada espectáculo que ofrezca la sala, 
individualmente considerado.
Se puede 'reservar' o 'cancelar reserva' un asiento cuidando que la reserva no supere 
las butacas disponibles y que no quede en número negativo.
Usar PDO y PDO::rollback para cancelar las reservas
*/

//genero la clase sala
class Sala{
    protected $cantButacas;
    protected $pdo; //acá guardamos el objeto conexión

    function __construct($butacas) {
        $host='localhost';
        $user='root';
        $pass='123456';
        $dbname='cine';

        $this->cantButacas = $butacas;
        $this->pdo = $pdo;

        try { //conectamos a la base
            $pdo = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);
            if ($pdo) {
                echo 'Conexión a la base exitosa<br>.';
            } else { //si no nos conectamos...
                trow new Exception()
            }
        } catch(Exception $e) { //Mostrar datos del error
            echo 'No se pudo conectar a la base: '. $e->getCode() . ' ' . $e->getLine() . ' ' .$e->getFile() . ' ' .$e->getTrace();
          }
    }

    function getButacas() {
        $pdo->query('SELECT id FROM usuarios');
        $butacasOcupadas = mysqli_num_rows($pdo);
        echo "Hay <b>$butacasOcupadas</b> butacas ocupadas.<br>";
        $butacasLibres = $this->cantButacas - $butacasOcupadas;
        echo "Quedan <b>$butacasLibres</b> butacas libres.<br>";
    }

    function addUsuario($usuario) {
        $usuario = $_POST['usuario'];
        try {
            $nuevoUsuario = $pdo->query('INSERT INTO usuarios (id, nombre) VALUES ('', '$usuario')');
            if ($nuevoUsuario) {echo 'Se guardó la reserva.';} 
            else {trow new Exception();}
            } 
        catch(Exception $e) {
            echo 'No se pudo guardar la reserva! '. $e->getCode() . ' ' . $e->getLine() . ' ' .$e->getFile() . ' ' .$e->getTrace();
            }

    }

    function __destruct(){
        $this->pdo = null;
    }
}

//creamos el objeto sala
$x = new Sala(10);
$x->getButacas();
echo '<br><br>';

?>
<form action="" method="POST">
    <h2>Nueva reserva</h2>
    Nombre: <input type="text" name="usuario"><br>
    <input type="submit" name="submit">
</form>

<?php

if($_SERVER['REQUEST_METHOD'] == 'POST') {
    if ($_POST['usuario']) {$x->addUsuario($_POST['usuario']);} 
    else {echo 'Debe ingresar un nombre';}
}

あなたの洞察に感謝します!

4

0 に答える 0