Inhoud blog
  • operatoren
  • Hoe maak ik een nieuwssysteem ?
  • scoren bij google
  • beginner database uitlees guide
    Zoeken in blog

    tutorials
    heel veel tutorials hier te vinden
    23-10-2007
    Klik hier om een link te hebben waarmee u dit artikel later terug kunt lezen.beginner database uitlees guide
    Datababase guide :

    De basis

    Je wil dus iets uitlezen uit een database. Eigenlijk is dat je 1e fout al, aangezien je iets wil uitlezen uit een tabel.
    Je hebt je server (bijvoorbeeld localhost)
    Daaronder je databases (bijvoorbeeld user007)
    Daaronder je tables (bijvoorbeeld namen, plaatsen)

    Je wil dus je tables uitlezen. Je verbinding maak je met je server, en die zet je met de gegevens die je mee stuurt naar de juiste database.

    <?
        $link 
    mysql_connect('server','username','password'
    );
            
    mysql_select_db('databasenaam',$link
    );
    ?>

    Simpel, je maakt connectie met je gegevens, en je geeft daarna aan welke DB je wil gebruiken. Let ook op de uitlijning en de variabele namen. Hou dit duidelijk voor jezelf. lowercase, geen gekke tekens.

    Tabel uitlezen met een SQL statement

    De verbinding is er, nu de rest nog. Je wil alle namen uit je table 'namen' uitlezen.
    Voor mensen met PHPMyAdmin komt dit vrij bekend voor:

    <?
        $sql 
    "SELECT `persoon` FROM `namen` WHERE `persoon` = 'peter'"
    ;
    ?>


    `Backticks` dus. Leer jezelf dit af. Backticks zijn slecht evil en moeten de eeuwigdurende zakjeuk krijgen. Je hebt ze niet nodig en ze maken het allemaal onduidelijk.

    Voor je 1e goede statement maak je er dit van:

    <?
        $sql 
    'SELECT     persoon 
            FROM     namen 
            WHERE     persoon = "peter"'
    ;
    ?>

    Weer uitlijning voor duidelijkheid. Dit doet hetzelfde als hierboven, zonder die verwarrende ``.
    Er staat nu begrijpelijk, selecteer het veld persoon, uit de tabel namen waar de waarde van persoon 'peter' is.
    Kind kan de was doen. Maarja nu kan je nog niets, het is eigenlijk gewoon een string, een losse variabele met inhoud. Op naar de volgende stap!


    Om je query uit te voeren gebruik je mysql_query (doh). Hieruit komt een resultset, dus noem je variabele ook duidelijk ernaar.


    <?
        $sql 
    'SELECT     persoon 
            FROM     namen 
            WHERE     persoon = "peter"'
    ;
        
    $res mysql_query($sql,$link);
    ?>

    $link hier is niet nodig , maar het kan duidelijkheid geven met meerdere verbindingen. Eigen keus.

    Beginnersfout deluxe!

    Dus nu zit in $res ons resultaat van de query? Kan , maar je mag hier niet van uit gaan! Je query kan fout zijn, er kan een tikfout in zitten en je kan gewoon geen results hebben omdat er niets voldoet aan je voorwaarde. Hoe lossen we dit op? Foutafhandeling!

    Nou zijn hiervoor de technische en de duidelijke manier. Ik pak de laatste.

    <?
        $sql 
    'SELECT     persoon 
            FROM     namen 
            WHERE     persoon = "peter"'
    ;
        
    $res mysql_query($sql,$link
    );
        if (
    $res && mysql_num_rows($res) >= 1
    )
        {
            echo 
    'Resultaat!'
    ;
        } else {
            echo 
    'Geen data gevonden'
    ;
        }
    ?>

    Hier staat in het kort: Als er resultaat komt uit je query functie, en het aantal rijen dat je resultaat telt groter of gelijk is aan 1. Oftewel, query gelukt en er is een uitkomst!

    Nu kan je met $res nog niet al te veel. Als ik een aantal mensen heb die peter heten wil ik hun adressen allemaal wel eens weten. Hoe haal ik die nu uit $res?

    Weer, een aantal manieren, ik zal de meest duidelijke uitleggen.


    <?
        $sql 
    'SELECT     persoon, adres
            FROM     namen 
            WHERE     persoon = "peter"'
    ;
        
    $res mysql_query($sql,$link);
        if (
    $res && mysql_num_rows($res) >= 1)
        {
            while (
    $row mysql_fetch_array($res))
            {
                echo 
    'naam: '.$row['persoon'].' adres: '.$row['adres'].'<br>';
            }
        } else {
            echo 
    'Geen data gevonden';
        }
    ?>

    Dit begint er al op te lijken en is eigenlijk de hele basis hoe het goed kan.
    $res is niets meer dan een array met waardes die je uitleest.
    Met mysql_fetch_array($res) haal je deze per regel uit elkaar en zet ze in dit geval in $row, weer een heldere naam voor een array met alleen rijen!

    in $row staan nu elke regel die je uitleest (while) de waardes uit persoon en adres uit de tabel namen.


    Opmaak in table

    Voor een strak overzichtje wil je wellicht de hele rataplan in een tabel zetten, hoe doe je dit netjes?
    Alehoep!

    <?
        $sql 
    'SELECT     persoon, adres
            FROM     namen 
            WHERE     persoon = "peter"'
    ;
        
    $res mysql_query($sql,$link);
        if (
    $res && mysql_num_rows($res) >= 1)
        {
            echo 
    '<table border="10">
                <tr>
                    <td>naam</td>
                    <td>adres</td>
                </tr>'
    ;
                
            while (
    $row mysql_fetch_array($res))
            {
                echo 
    '<tr>
                    <td>'
    .$row['persoon'].'</td>
                    <td>'
    .$row['adres'].'</td>
                </tr>'
    ;
            }

            echo 
    '</table>';
        } else {
            echo 
    'Geen data gevonden';
        }
    ?>

    Er staat: Is er resultaat (if en de num_rows) , begin een table. Nadat er een table is begonnen vul je deze met rijen (while en de fetch_array). Als deze erin staan sluit je je table weer binnen je if.
    En is er geen result , krijg je de text Geen data gevonden.

    The end!

    Hoop dat het een beetje duidelijk is. Iedereen kan dit en kan dit snappen. Het is simpel uit te breiden naar eigen inzicht. Vooral met foutafhandeling zijn er nog een boel toevoegingen, maar zo kan je je al aardig redden.


    bron : phphulp.nl

    23-10-2007 om 21:43 geschreven door willemrules  

    0 1 2 3 4 5 - Gemiddelde waardering: 0/5 - (0 Stemmen)


    Archief per week
  • 22/10-28/10 2007

    E-mail mij

    Druk op onderstaande knop om mij te e-mailen.


    Gastenboek

    Druk op onderstaande knop om een berichtje achter te laten in mijn gastenboek


    Blog als favoriet !

    Willekeurig Bloggen.be Blogs
    zita1
    www.bloggen.be/zita1
    LinkPartners
  • grappige filmpjes elke dag hier
  • muziek teksten hier te vinden


  • Blog tegen de wet? Klik hier.
    Gratis blog op https://www.bloggen.be - Meer blogs