Het volgende artikel gaat enige ordening in de applicatie aanbrengen zodat er een werkende applicatie ontstaat.
Dit artikel gaat ervan uit dat je het artikel:
gelezen hebt.
De volledige script.
Het eerst laat ik jullie het volledige script zien, waarna de uitleg per gedeelte volgt. Allereerst het volledige script.
<?php /* Aangepast door van Wijhe Consultancy http://portaal.vanwijhecons.nl/ augustus 2011 */ // het netjes openen van een html file include( 'header.php' ) ; //-----try try { //----- $db = new PDO ( 'mysql:host=localhost;dbname=adressen' , 'gebruiker' , 'wachtwoord' ) ; $db -> setAttribute ( PDO :: ATTR_ERRMODE , PDO :: ERRMODE_EXCEPTION ); $resultaat = '' ; $st = $db -> prepare ( "SELECT * FROM adressen ORDER BY naam ASC;" ) ; $st -> execute (); echo '<table cellspacing="5" cellpadding="5" border="0" width="800">' . "\n" ; foreach ( $st -> fetchAll () as $rij ) { echo '<tr>' . "\n" ; echo '<td align="left">' . "\n" ; echo '<a href="?id=' . $rij [ 'id' ]. '">' . "\n" ; echo $rij [ 'm_v' ]. ' ' . $rij [ 'voornaam' ]. ' ' . $rij [ 'tussenvoegsel' ]. ' ' . $rij [ 'naam' ] ; echo '</a>' . "\n" ; echo '</td>' . "\n" ; echo '<td>' . "\n" ; echo $rij [ 'straat' ]. " " . $rij [ 'huisnummer' ]; echo '</td>' . "\n" ; echo '<td>' . "\n" ; echo $rij [ 'pc' ] . " " . $rij [ 'woonplaats' ]; echo '</td>' . "\n" ; echo '<td>' . "\n" ; echo $rij [ 'telefoon' ] ; echo '</td>' . "\n" ; echo '<td>' . "\n" ; echo $rij [ 'email' ]; echo '</td>' . "\n" ; echo '</tr>' . "\n" ; $resultaat = '1' ; } echo '</table>' . "\n" ; if ( '1' != $resultaat ) { echo '<table width="100%"><tr><td>Er zijn geen resultaten</td></tr></table>' . "\n" ; } //-----/ } //-----/try //-----catch catch ( PDOException $e ) { //----- echo '<pre>' . "\n" ; echo '<table>' . "\n" ; echo '<tr><td> File: </td><td> ' . $e -> getMessage (). '</td></tr>' . "\n" ; echo '</table>' . "\n" ; echo '</pre>' . "\n" ; //-----/ } //-----/catch echo '<br />' . "\n" ; echo '<hr />' . "\n" ; echo '<br />' . "\n" ; echo '<a href="voegtoe.php"> Nieuw </a>' . "\n" ; include( 'footer.php' ) ; ?>
Header.php
Dit is een standaard header. De reden dat we deze zo gebruiken is om we op deze include manier maar 1 keer de file hoeven te schrijven. Voor de rest is het een kweste van aanroepen.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <head> <meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <title> artikel </title> <style> <!-- body { color: #000000; background-color: #ffffff; font-family: arial,helvetica,verdana,helvetica-neue,sans-serif; font-size: 13px; } p { color: #000000; margin: 0; padding: 0; } table { margin: 0; padding: 0; } td { margin: 0; padding: 0; color: #000000; } h2 { color: #000000; font-size: 14px; font-weight: bold; margin: 0; padding: 0; } h1 { color: #000000; font-size: 15px; font-weight: bold; margin: 0; padding: 0; } --> </style> </head> <body> <h1> Adressenlijst </h1> <br /> <hr /> <br />
Footer.php
Dit is een standaard footer.
</body> </html>
Config.php
Deze hebben we nog niet gezien.
In deze file gaan de gegevens voor het aanroepen van de database plaatsen.
Hierdoor hoeven we we niet in elke file de gegevens te plaatsen en is de applicatie tevens op meerdere plaatsen met meerdere databases te gebruiken.
<?php $host = 'localhost' ; $database = 'adressen' ; $gebruiker = 'gebruiker' ; $wachtwoord = 'wachtwoord' ; $tabel = 'adressen' ; ?>
Aanpassing van de index.php
Wel dienen we in elk script waar een interactie is met de database dit script plaatsen.
Voor index.php zal dat er als volgt uit zien
<?php /* Aangepast door van Wijhe Consultancy http://portaal.vanwijhecons.nl/ augustus 2011 */ // maakt MySQL variabelen beschikbaar. include( 'config.php' ); // het netjes openen van een html file include( 'header.php' ) ; //-----try try { //----- $db_n = new PDO ( 'mysql:host=' . $host . ';dbname=' . $database , $gebruiker , $wachtwoord ); $db -> setAttribute ( PDO :: ATTR_ERRMODE , PDO :: ERRMODE_EXCEPTION ); $resultaat = '' ; $st = $db -> prepare ( "SELECT * FROM adressen ORDER BY naam ASC;" ) ; $st -> execute (); echo '<table cellspacing="5" cellpadding="5" border="0" width="800">' . "\n" ; foreach ( $st -> fetchAll () as $rij ) { echo '<tr>' . "\n" ; echo '<td align="left">' . "\n" ; echo '<a href="?id=' . $rij [ 'id' ]. '">' . "\n" ; echo $rij [ 'm_v' ]. ' ' . $rij [ 'voornaam' ]. ' ' . $rij [ 'tussenvoegsel' ]. ' ' . $rij [ 'naam' ] ; echo '</a>' . "\n" ; echo '</td>' . "\n" ; echo '<td>' . "\n" ; echo $rij [ 'straat' ]. " " . $rij [ 'huisnummer' ]; echo '</td>' . "\n" ; echo '<td>' . "\n" ; echo $rij [ 'pc' ] . " " . $rij [ 'woonplaats' ]; echo '</td>' . "\n" ; echo '<td>' . "\n" ; echo $rij [ 'telefoon' ] ; echo '</td>' . "\n" ; echo '<td>' . "\n" ; echo $rij [ 'email' ]; echo '</td>' . "\n" ; echo '</tr>' . "\n" ; $resultaat = '1' ; } echo '</table>' . "\n" ; if ( '1' != $resultaat ) { echo '<table width="100%"><tr><td>Er zijn geen resultaten</td></tr></table>' . "\n" ; } //-----/ } //-----/try //-----catch catch ( PDOException $e ) { //----- echo '<pre>' . "\n" ; echo '<table>' . "\n" ; echo '<tr><td> File: </td><td> ' . $e -> getMessage (). '</td></tr>' . "\n" ; echo '</table>' . "\n" ; echo '</pre>' . "\n" ; //-----/ } //-----/catch echo '<br />' . "\n" ; echo '<hr />' . "\n" ; echo '<br />' . "\n" ; echo '<a href="voegtoe.php"> Nieuw </a>' . "\n" ; include( 'footer.php' ) ; ?>
De eerste aanpassingen
Deze zitten in het volgende gedeelte. De variabelen welke gebruikt worden in new PDO worden in de config.php toegekend. Dat deze include bovenin staat, heeft als reden dat het gehele script er dan gebruik van kan gaan maken.
<?php // maakt MySQL variabelen beschikbaar. include( 'config.php' ); try { $db_n = new PDO ( 'mysql:host=' . $host . ';dbname=' . $database , $gebruiker , $wachtwoord ); /* code */ } catch ( PDOException $e ) { /* code */ } ?>
De aanpassingen aan voegtoe.php
Voor voegtoe.php zal dat er als volgt uit zien De include is weer bovenin te zien en de variabelen welke gebruikt worden in new PDO worden in de config.php toegekend.
<?php /* Aangepast door van Wijhe Consultancy augustus 2011 */ // maakt MySQL variabelen beschikbaar. include( 'config.php' ) ; // het netjes openen van een html file include( 'header.php' ) ; // formulier nog niet verstuurd // laat het invul formulier hier zien if ( $_SERVER [ "REQUEST_METHOD" ] == "GET" ) { //----- echo '<table cellspacing="5" cellpadding="5" border=0>' . "\n" ; echo '<form action="' . $_SERVER [ "SCRIPT_NAME" ]. '" method="POST">' . "\n" ; echo '<tr>' . "\n" ; echo '<td colspan=2><b><font color=red>*</font><font size="-1"> = verplicht</font></b></td>' . "\n" ; echo '</tr>' . "\n" ; echo '<tr>' . "\n" ; echo '<td valign="top">Dhr / Mw <font color=red>*</font></font></b></td>' . "\n" ; echo '<td><input size="50" maxlength="250" type="text" name="mv"></td>' . "\n" ; echo '</tr>' . "\n" ; echo '<tr>' . "\n" ; echo '<td valign="top">Voornaam <font color=red>*</font></td>' . "\n" ; echo '<td><input size="50" maxlength="250" type="text" name="voornaam"></td>' . "\n" ; echo '</tr>' . "\n" ; echo '<tr>' . "\n" ; echo '<td valign="top">Tussenvoegsel </td>' . "\n" ; echo '<td><input size="50" maxlength="250" type="text" name="tussenvoegsel"></td>' . "\n" ; echo '</tr>' . "\n" ; echo '<tr>' . "\n" ; echo '<td valign="top">Achternaam <font color=red>*</font></td>' . "\n" ; echo '<td><input size="50" maxlength="250" type="text" name="naam"></td>' . "\n" ; echo '</tr>' . "\n" ; echo '<tr>' . "\n" ; echo '<td valign="top">Adres / Huisnummer<font color=red>*</font></td>' . "\n" ; echo '<td><input size="35" maxlength="250" type="text" name="straat"> <input size="15" maxlength="250" type="text" name="nummer"></td>' . "\n" ; echo '</tr>' . "\n" ; echo '<tr>' . "\n" ; echo '<td valign="top">Postcode </td>' . "\n" ; echo '<td><input size="50" maxlength="250" type="text" name="pc"></td>' . "\n" ; echo '</tr>' . "\n" ; echo '<tr>' . "\n" ; echo '<td valign="top">Woonplaats <font color=red>*</font></td>' . "\n" ; echo '<td><input size="50" maxlength="250" type="text" name="woonplaats"></td>' . "\n" ; echo '</tr>' . "\n" ; echo '<tr>' . "\n" ; echo '<td valign="top">Telefoon</td>' . "\n" ; echo '<td><input size="50" maxlength="250" type="text" name="telefoon"></td>' . "\n" ; echo '</tr>' . "\n" ; echo '<tr>' . "\n" ; echo '<td valign="top">Geboorte datum ( yyyy-mm-dd )</td>' . "\n" ; echo '<td><input size="50" maxlength="250" type="text" name="geb_datum"></td>' . "\n" ; echo '</tr>' . "\n" ; echo '<tr>' . "\n" ; echo '<td valign="top">E-mail</td>' . "\n" ; echo '<td><input size="50" maxlength="250" type="text" name="e_mail"></td>' . "\n" ; echo '</tr>' . "\n" ; echo '<tr>' . "\n" ; echo '<td colspan=2><input type="Submit" name="verstuurd" value="Voeg adres toe">' . "\n" ; echo ' <input type="Reset" value="Wis invoer">' . "\n" ; echo '</td>' . "\n" ; echo '</tr>' . "\n" ; echo '</form>' . "\n" ; echo '</table>' . "\n" ; //----/ } else { // maak foutenlijst array $foutenlijst = array(); $teller = 0 ; // valideer tekst velden if ( ! strlen ( $_POST [ "mv" ] ) ) { $foutenlijst [ $teller ] = 'Het volgende veld is niet ingevuld: <b>Dhr Mw</b>' ; $teller ++; } if ( ! strlen ( $_POST [ "voornaam" ]) ) { $foutenlijst [ $teller ] = 'Het volgende veld is niet ingevuld: <b>Voornaam</b>' ; $teller ++; } if ( ! strlen ( $_POST [ "naam" ]) ) { $foutenlijst [ $teller ] = 'Het volgende veld is niet ingevuld: <b>Achternaam</b>' ; $teller ++; } if ( ! strlen ( $_POST [ "straat" ]) ) { $foutenlijst [ $teller ] = 'Het volgende veld is niet ingevuld: <b>Adres</b>' ; $teller ++; } if ( ! strlen ( $_POST [ "nummer" ]) ) { $foutenlijst [ $teller ] = 'Het volgende veld is niet ingevuld: <b>Nhuisnummer</b>' ; $teller ++; } if ( ! strlen ( $_POST [ "woonplaats" ]) ) { $foutenlijst [ $teller ] = 'Het volgende veld is niet ingevuld: <b>Woonplaats</b>' ; $teller ++; } if ( ! strlen ( $_POST [ "geb_datum" ]) ) { $geb_datum = '0000-00-00' ; } else { $geb_datum = $_POST [ "geb_datum" ] ; } // fouten controle. // en zoniet. if ( sizeof ( '0' == $foutenlijst ) ) { try { // Verzorg connectie naar MySQL // en initialiseert beginwaarden PDO errors $db_n = new PDO ( 'mysql:host=' . $host . ';dbname=' . $database , $gebruiker , $wachtwoord ); $db_n -> setAttribute ( PDO :: ATTR_ERRMODE , PDO :: ERRMODE_EXCEPTION ); // Het opzetten van de Query $st_n = $db_n -> prepare ( "INSERT INTO adressen (mv, voornaam, tussenvoegsel, naam, straat, nummer, pc, woonplaats, telefoon, email, geb_datum, opm) VALUES(:mv, :tv, :vn, :naam, :straat, :nr, :pc, :plaats, :telf, :email, :gd, 'test') " ) ; // Het toekennen en beveiligen van de variabelen via bindParam // $st_n -> bindParam ( ":mv" , $_POST [ "mv" ]); $st_n -> bindParam ( ":vn" , $_POST [ "voornaam" ]); $st_n -> bindParam ( ":tv" , $_POST [ "tussenvoegsel" ]); $st_n -> bindParam ( ":naam" , $_POST [ "naam" ]); $st_n -> bindParam ( ":straat" , $_POST [ "straat" ]); $st_n -> bindParam ( ":nr" , $_POST [ "nummer" ]); $st_n -> bindParam ( ":pc" , $_POST [ "pc" ]); $st_n -> bindParam ( ":plaats" , $_POST [ "woonplaats" ]); $st_n -> bindParam ( ":telf" , $_POST [ "telefoon" ]); $st_n -> bindParam ( ":email" , $_POST [ "e_mail" ]); $st_n -> bindParam ( ":gd" , $geb_datum ); // Het uitvoeren van de vraagstelling $st_n -> execute () ; // laat resultaat zien en verdere mogelijkheden. echo '<div align="center">' . "\n" ; echo '<br />' . "\n" ; echo '<br />' . "\n" ; echo '<br />' . "\n" ; echo 'Het toevoegen was succesvol.' ; echo '<br />' . "\n" ; echo '<br />' . "\n" ; echo '<a href="index.php">Klik hier om terug naar het hoofd menu te gaan.</a>' . "\n" ; echo '<br />' . "\n" ; echo '</div>' . "\n" ; //-----/ } catch ( PDOException $e ) { //----- echo '<pre>' . "\n" ; echo '<table>' . "\n" ; echo '<tr><td> File: </td><td> ' . $e -> getMessage (). ' </td></tr>' . "\n" ; echo '</table>' . "\n" ; echo '</pre>' . "\n" ; //-----/ } } else { // er zijn fouten gevonden. // laat deze als lijst zien. echo '<font size=-1>De volgende fouten traden op : <br />' . "\n" ; echo '<ul>' . "\n" ; for ( $x = '0' ; $x < sizeof ( $foutenlijst ); $x ++) { echo '<li>' . $foutenlijst [ $x ]. '</li>' . "\n" ; } echo '</ul>' . "\n" ; echo '</font>' . "\n" ; //-----/ } } // Weergeven van de footer include( "footer.php" ); ?>
De laatste aanpassingen van de index.php
In onderstaande script zijn de linken geplaatst naar de nog te komen scripts.
Deze bevatten nu een dummy tekst.
<?php /* Aangepast door van Wijhe Consultancy http://portaal.vanwijhecons.nl/ augustus 2011 */ // maakt MySQL variabelen beschikbaar. include( 'config.php' ); // het netjes openen van een html file include( 'header.php' ) ; // zoek formulier include( 'zoekform.php' ) ; echo '<p> </p>' . "\n" ; //-----try try { //----- $db_n = new PDO ( 'mysql:host=' . $host . ';dbname=' . $database , $gebruiker , $wachtwoord ); $db_n -> setAttribute ( PDO :: ATTR_ERRMODE , PDO :: ERRMODE_EXCEPTION ); $resultaat = '' ; $st = $db_n -> prepare ( "SELECT * FROM adressen ORDER BY naam ASC;" ) ; $st -> execute (); echo '<table cellspacing="5" cellpadding="5" border="0" width="800">' . "\n" ; foreach ( $st -> fetchAll () as $rij ) { echo '<tr>' . "\n" ; echo '<td align="left">' . "\n" ; echo '<a href="wijzig.php?id=' . $rij [ 'id' ]. '">' . "\n" ; echo $rij [ 'm_v' ]. ' ' . $rij [ 'voornaam' ]. ' ' . $rij [ 'tussenvoegsel' ]. ' ' . $rij [ 'naam' ] ; echo '</a>' . "\n" ; echo '</td>' . "\n" ; echo '<td>' . "\n" ; echo $rij [ 'straat' ]. " " . $rij [ 'huisnummer' ]; echo '</td>' . "\n" ; echo '<td>' . "\n" ; echo $rij [ 'pc' ] . " " . $rij [ 'woonplaats' ]; echo '</td>' . "\n" ; echo '<td>' . "\n" ; echo $rij [ 'telefoon' ] ; echo '</td>' . "\n" ; echo '<td>' . "\n" ; echo $rij [ 'email' ]; echo '</td>' . "\n" ; echo '<td>' . "\n" ; echo '<a href="verwijder.php?id=' . $rij [ 'id' ]. '"> Verwijder </a>' . "\n" ; echo '</td>' . "\n" ; echo '</tr>' . "\n" ; $resultaat = '1' ; } echo '</table>' . "\n" ; if ( '1' != $resultaat ) { echo '<table width="100%"><tr><td>Er zijn geen resultaten</td></tr></table>' . "\n" ; } //-----/ } //-----/try //-----catch catch ( PDOException $e ) { //----- echo '<pre>' . "\n" ; echo '<table>' . "\n" ; echo '<tr><td> File: </td><td> ' . $e -> getMessage (). '</td></tr>' . "\n" ; echo '</table>' . "\n" ; echo '</pre>' . "\n" ; //-----/ } //-----/catch echo '<br />' . "\n" ; echo '<hr />' . "\n" ; echo '<br />' . "\n" ; echo '<a href="voegtoe.php"> Nieuw </a>' . "\n" ; // Weergeven van de footer include( 'footer.php' ) ; ?>
zoekform.php
Het script zoekform.php.
<?php echo '<form method="post" action="zoeken.php">' . "\n" ; echo '<table cellspacing="5" cellpadding="5" border="0" width="800">' . "\n" ; echo '<tr>' . "\n" ; echo '<td> </td>' . "\n" ; echo '<td style="width: 100px;">' . "\n" ; echo '<input type="text" size="15" name="zoekenString" value="" />' . "\n" ; echo '</td>' . "\n" ; echo '<td style="width: 100px;"><input type="submit" name="submit" value="Zoeken.." /></td>' . "\n" ; echo '</tr>' . "\n" ; echo '</table>' . "\n" ; echo '</form>' . "\n" ; ?>
wijzigen.php / zoeken.php / verwijder.php
Deze scripts bevatten nu nog een dummy tekst. In de komende artikelen zullen ze behandeld worden.
<?php /* Aangepast door van Wijhe Consultancy http://portaal.vanwijhecons.nl/ augustus 2011 */ // het netjes openen van een html file include( 'header.php' ) ; echo '<p>Deze komt nog.<br />' . "\n" ; echo '<br />' . "\n" ; echo '<a href="index.php">Klik hier om terug naar het hoofd menu te gaan.</a>' . "\n" ; echo '</p>' . "\n" ; // Weergeven van de footer include( 'footer.php' ) ; ?>
wijzig.php / verwijder.php
Alle scripts behorende bij dit artikel zijn te vinden onder de naam naw_ordening.zip
De volgende artikelen
De volgende artikelen zullen gaan over:
Het veranderen van gegevens
Het verwijderen van gegevens
Het zoeken van gegevens
De laatste stappen in het verfijnen
Veel programmeer plezier ermee. Tot ziens, Ubel Jan van Wijhevan Wijhe Consultancy info@vanwijhecons.nl