dimanche 18 juin 2017

button for delete (just test q.)

http://ift.tt/2rK9IZr

cursusmaster, wat in de managers folder staat.

?php
/* cursusmanager inherits van mastermanager. Op dit moment bevat de mastermanager
 * alleen nog een database verbinding.
 */
class cursusmanager extends mastermanager {
    public function getById($aId) {
        $statement = $this->connection->prepare("SELECT * FROM cursus WHERE id = ?");
        $statement->bindValue(1, $aId);

        $statement->execute();

        /* fetchobject haalt het eerste record op uit het statement. PHP
         * maakt hier zelf een object van, dus het model person.php wordt 
         * hier nu niet gebruikt. fetchobject geeft null als er geen records 
         * zijn
         */
        return $statement->fetchObject();
    }

    public function getAll() {
        $statement = $this->connection->prepare("SELECT * FROM cursus");
        $statement->execute();

        /* fetchAll(PDO::FETCH_OBJ) haalt ALLE records op uit het statement. PHP
         * maakt hier zelf objecten van, fetchAll(PDO::FETCH_OBJ) geeft een lege array als 
         * er geen records zijn
         */
        return $statement->fetchAll(PDO::FETCH_OBJ);
    }

    public function delete($aId) {
        $statement = $this->connection->prepare("DELETE FROM cursus WHERE id = ?");
        $statement->bindValue(1, $aId);

        $statement->execute();
    }
public function magVerwijderen($aCursusId) {
                $statement = $this->connection->prepare("SELECT COUNT(*) FROM cursusleerling WHERE cursusid = ?");
                $statement->bindValue(1, $aCursusId);

                $statement->execute();
                $aantal = $statement->fetchColumn();

                return $aantal == 0;
            }   

}

mastermanager, wat ook in de masters folder staat.

<?php

class mastermanager {
    /* connectie beschikbaar maken voor afgeleide van deze klas */
    protected $connection;

    /* De constructor van de mastermanager  */
    function __construct() {
        /* Globale database connection koppelen aan mastermanager
         * het keyword global betekend in php dat je gebruik wilt maken
         * van een globale variabele buiten de scope waar je nu bezig bent.
         * In dit geval komt $globalConnection uit database.php
        */
        global $globalConnection;
        $this->connection = $globalConnection;
    }
}

person:

<?php

class person {
    public $id;
    public $firstname;
    public $lastname;
    public $email;
}

autoloader -> Nee hiermee laadt je geen auto op, maar iets anders ofzo.

<?php

$searchPaths = Array();
array_push($searchPaths, "");
array_push($searchPaths, "managers/");
array_push($searchPaths, "models/");

require_once 'database.php';

function __autoload($aClassName) {
    global $searchPaths;
    foreach ($searchPaths as $item) {
        $fileName = $item . $aClassName . ".php";
        if (file_exists($fileName)) {
            require_once $fileName;
            return;
        }
    }
}

database -> maak hiermee connectie met de database om zo alles werkende te krijgen

<?php

$hostname = "localhost";
$database = "fkwarningthree";
$username = "root";
$password = "";

$globalConnection = new PDO("mysql:hostname=$hostname;dbname=$database;", $username, $password);
$globalConnection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

index -> alles wat een beetje vorm geeft aan het hele gebeuren etc.

<html>
<head>
    <link href="css/stylesheet.css" rel="stylesheet" type="text/css"/>
</head>
<body>

    <?php
        require_once 'autoloader.php';

        // cursusManager is verantwoordelijk voor alle person handeling op 
        // de database.
        $cursusManager = new cursusmanager();
        // Aanname dat delete de enige action is op dit scherm

        if(isset($_GET["action"]) && $_GET["action"] == "delete") {
            // Aanname dat het id netjes word meegenomen!
            $id = $_GET["id"];
            $cursusManager->delete($id);
        }

        // Haal alle cursussen uit de database om deze verderop te laten zien.
        $cursussen = $cursusManager->getAll();
    ?>

    <img src="images/logo.png" id="logo" />

    <h2>Cursussen</h2>
    <!-- simpel gridje, 123 hatsaflats -->
    <div class="grid">
        <div class="gridheader">Naam</div>
        <div class="gridheader">Aantal jaar</div>
        <div class="gridheader">Niveau</div>
        <div class="gridheader gridaction"></div>

        <?php
            // loop door alle personen heen 
            // (in code bovenaan uit database gehaald)
            foreach($cursussen as $cursus) {
                echo "<div class='gridcontent'>$cursus->naam</div>";
                echo "<div class='gridcontent'>$cursus->aantaljaar</div>";
                echo "<div class='gridcontent'>$cursus->niveau</div>";
                echo "<div class='gridcontent gridaction'><a href='verwijderen.php?id=$cursus->id'>delete</a></div>";
            }

        ?>
    </div>
</body>

verwijderen -> een tussenpagina om twee buttons te laten zien, vooral bedoelt om de bezoeker te laten nadenken of hij/zij de content wel wilt verwijderen of niet.

<html>
<body>
    <?php
        require_once 'autoloader.php';
        // cursusManager is verantwoordelijk voor alle person handeling op 
        // de database.
        $cursusManager = new cursusmanager();
        // Aanname dat delete de enige action is op dit scherm
        $id = $_GET["id"];  

        $cursus = $cursusManager->getById($id);

        if(isset($_POST["verwijderen"])) {
            $cursusManager->delete($id);
            header("Location: index.php");
        }
        if(isset($_POST["annuleren"])) {
            header("Location: index.php");
        }

    ?>
    <form method="post">
        Weet je zeker dat je deze cursus wilt verwijderen? <br/><br/>
        <?php
            echo "<strong>$cursus->naam</strong>";
        ?>
        <br/><br/>

                    <?php
                     $magVerwijderen = $cursusManager->magVerwijderen($id);

                     if($magVerwijderen == true) {
                         echo "<input type='submit' name='verwijderen' value='Verwijderen' />";
                     }
                     else {
                         echo "<input type='submit' name='verwijderen' disabled value='Verwijderen' />";
                          }
                    ?>


        <input type="submit" name="annuleren" value="Annuleren" />

    </form>

</body>

Aucun commentaire:

Enregistrer un commentaire