Howto: Gegevens uit een database op je website plaatsen

Voor websites waarvan de content weken, maanden of zelfs jaren ongewijzigd blijft is het beheer vaak niet erg arbeidsintensief. De inhoud van de pagina’s kan in deze gevallen vrij makkelijk lokaal worden aangepast om vervolgens op de webserver geplaatst te worden. Anders wordt het als je een site beheerd waarvan de content dagelijks of zelfs nog vaker wijzigt,  bijgewerkt wordt, of wanneer gebruikers actief hun bijdrage aan de site kunnen leveren door er zelf berichten en of multimedia materiaal op te plaatsen.

In die gevallen is het bewaren van content in de pagina’s van je site vaak niet handig en in gevallen waar gebruikers ook nog input kunnen leveren zelf onmogelijk. De meeste sites waarvan de content veelvuldig wisselt of aangevuld wordt maken dan ook gebruik van databases. In de database wordt alle content van de site bewaard. Over hoe die content uit je database te halen en te presenteren op je site, gaat deze howto.

We maken in deze howto gebruik van de combinatie php en MySQL. Dit is een beproevde combinatie en deze wordt dan ook door vele sites op het internet gebruikt. Er vanuit gaande dat je reeds beschikt over een correct geinstalleerde webserver met daarop php en MySQL draaiend, gaan we nu stap voor stap het script maken dat de gegevens uit de database vist en in de browser weer geeft.

Stel dat de database waaruit we gegevens gaan halen een tabel bevat met allerlei nieuws artikelen. Die tabel, met de naam newsbase zou er als volgt uit kunnen zien:
fields_database
Het uiteindelijke doel van het script dat we gaan maken is het weergeven van de titel van de artikelen in de tabel.  Aangezien onze tabel een twee tal records bevat zal het resultaat van ons script straks dus twee titels opleveren.

Nu duidelijk is wat het resultaat van het script moet worden, gaan we maar eens beginnen met het schrijven van de code. Het eerste wat we in het script moeten doen, is een verbinding maken met de database waarin de tabel newsbase zich bevind. In dit voorbeeld zit de tabel in de database met de naam web:

<?php

/* Verbinding met de MySQL database maken.*/
$db = mysql_connect("servernaam", "gebruikersnaam","wachtwoord") or die (mysql_error());

Het moge duidelijk zijn dat de op regel 4 genoemde servernaam, gebruikersnaam en wachtwoord die zijn van je MySQL server. Nu we een verbinding met de MySQL server hebben gemaakt, is de volgende stap om php te vertellen uit welke database we gegevens gaan ophalen. Hiervoor gebruiken we de volgende code:

    /* Selecteer de database waarop de query gedraaid moet worden.*/
mysql_select_db("web", $db);

We hebben nu dus een verbinding gemaakt met de MySQL server en de database web geselecteerd. Nu gaan we de gegevens die we graag willen zien opvragen uit de tabel newsbase. Dit doen we met vehulp van een query. De php code hiervoor ziet er als volgt uit:

    /* Uitvoeren van de query.*/
$sql = "SELECT titel FROM newsbase";

/* Het resultaat van de query in een array variabele stoppen, zodat
we deze later uit kunnen lezen.*/
$result = mysql_query($sql);

Nadat we op regel twee de eigenlijke query uitgevoerd hebben en daarmee onze gegevens uit de tabel hebben gehaald, plaatsen we op regel 6 het resultaat van de query in de variabele $result zodat we dit later kunnen gebruiken en in de browser kunnen weergeven.

De laatste stap die genomen moet worden is het resultaat van onze selectie in de browser weergeven. Hiervoor dienen we nog de volgende code uit te voeren:

    /* Met behulp van de functie mysql_fetch_assoc halen we de rijen
uit de array op.*/
while ($row = mysql_fetch_assoc($result)) {

/* Print het resultaat uit de huidige rij op het scherm.*/
echo  $row["titel"];
echo "<br/>";
}

?>

De while loop op regel 3 loopt net zolang door als er resultaten in de variabele $result aanwezig zijn. Vervolgens printen we op regel 6 het resultaat dat zich op dat moment in in de variabele bevind. Op regel 7 zorgen er door middel van wat html code voor dat er netjes naar een volgende regel wordt gesprongen voor dat het volgende resultaat uit onze selectie wordt geprint.

Het moge duidelijk zijn dat je op deze manier je code geheel naar eigen smaak kan vorm geven. Voor de geïnteresseerde heb ik hieronder nogmaals de gehele code afgedrukt. Veel plezier er mee :) .

<?php

/* Verbinding met de MySQL database maken.*/
$db = mysql_connect("servernaam", "gebruikersnaam","wachtwoord") or die (mysql_error());

/* Selecteer de database waarop de query gedraaid moet worden.*/
mysql_select_db("web", $db);

/* Uitvoeren van de query.*/
$sql = "SELECT titel FROM newsbase";

/* Het resultaat van de query in een array variabele stoppen, zodat
we deze later uit kunnen lezen.*/
$result = mysql_query($sql);

/* Met behulp van de functie mysql_fetch_assoc halen we de rijen
uit de array op.*/
while ($row = mysql_fetch_assoc($result)) {

/* Print het resultaat uit de huidige rij op het scherm.*/
echo  $row["titel"];
echo "<br/>";
}
?>

Mijn reactie