U bent hier

Enige ordening

logo

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_ERRMODEPDO::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'] ." &nbsp; "$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> &nbsp; File: &nbsp; </td><td> &nbsp; '.$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') ;
    
?> 



  index.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 />



  header.php


Footer.php

Dit is een standaard footer.



</body>
</html>



  footer.php


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' ;


?>



  config.php


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_ERRMODEPDO::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'] ." &nbsp; "$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> &nbsp; File: &nbsp; </td><td> &nbsp; '.$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') ;
    
?> 



  index.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
        */    
    
}


?> 



  index.php


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 
'&nbsp;&nbsp;&nbsp; <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_ERRMODEPDO::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> &nbsp; File: &nbsp; </td><td> &nbsp; '.$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");

?>



  voegtoe.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>&nbsp; </p>'."\n" ;

//-----try
try
{  
    
//-----
    
$db_n = new PDO('mysql:host='.$host.';dbname='.$database$gebruiker$wachtwoord);
    
$db_n->setAttribute(PDO::ATTR_ERRMODEPDO::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'] ." &nbsp; "$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> &nbsp; File: &nbsp; </td><td> &nbsp; '.$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') ;
    
?> 



  index.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" ;

?>



  zoekform.php


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 Wijhe

van Wijhe Consultancy
info@vanwijhecons.nl