zondag 2 augustus 2009

Een website met database: MySQL en PHP


Heel wat mensen maken een website met PHP. Dat komt vooral omdat PHP makkelijk te leren is, en je al snel kunt doen wat je wil. Maar er is meer mogelijk, zo kun je PHP laten samenwerken met een MySQL-database. In de database sla je al je data op, zoals de content voor je pagina's. Met PHP haal je de data uit de database, en weergeef je deze. Ik zal in deze handleiding uitleggen hoe je dat doet.

Het samenwerken van PHP met een database verloopt iedere keer volgens een bepaald patroon:
  1. Je maakt verbinding met de database
  2. PHP laat de database een opdracht (query) uitvoeren
  3. PHP ontvangt de resultaten
  4. Met de resultaten voor je een bewerking uit (bijv. de resultaten weergeven)
1. Verbinding maken met de MySQL-database
PHP heeft een groot aantal functies om te werken met MySQL-databases. De eerste die we gaan gebruiken is de mysql_connect-functie. Hiermee maken we verbinding met de database-server. Vervolgens gaan we met de mysql_select_db-functie de juiste database selecteren.

$database = mysql_connect('localhost','gebruikersnaam','wachtwoord');
mysql_select_db($database,'databasenaam'';
?>

Sla de bovenstaande code op als een .php-bestand op je webserver. Je hebt nu een verbinding met de database tot stand gebracht.

De volgende stap is het opstellen van een query: de opdracht die uitgevoerd moet worden.

2. Een query uitvoeren
In dit voorbeeld gaan we informatie uit de database ophalen. Stel je hebt een tabel genaamd 'paginas' met twee kolommen: titel en bericht. We willen een overzicht van alle titels in de database. De query ziet er dan als volgt uit:

"SELECT titel FROM `paginas`";

Hiermee selecteer je alle titels. Je kunt er ook voor kiezen om alle data te selecteren, dus ook de berichten. De query wordt dan de volgende:

"SELECT * FROM `paginas`";

Een ander voorbeeld. Stel je wilt 1 specifieke titel selecteren, en het bijbehorend bericht. Dat kan je doen met onderstaande query:

"SELECT * FROM `paginas` WHERE titel='De te selecteren titel'";

De querys die je hierboven ziet kun je laten uitvoeren door de php-functie mysql_query(); Hieronder zie je een voorbeeld hoe je dat doet:

$query = mysql_query("SELECT * FROM `paginas`");

Deze regel komt in je php-bestand onder de twee regels die je er al hebt staan om verbinding te maken en de juiste database te selecteren.

Als je het bestand nu zou uitvoeren zou je niets zien op je scherm. Dat wil niet zeggen dat er niets gebeurt; in tegendeel: PHP heeft de data al wel voor je uit de database opgehaalt. We kunnen nu overgaan tot het verwerken van de resultaten van de query.

3. Verwerken van het Query-resultaat
Omdat we met de bovenstaande query een lijst met pagina-titels ophalen gaan we de titels stuk voor stuk verwerken. Het verwerken doen we met het onderstaande stukje code.

while($resultaat = mysql_fetch_array($query))
{
echo $resultaat['titel'];
}

Laten we dit stukje een nader bekijken. Het resultaat van de query halen we op met de mysql_fetch_array()-functie. Hiermee stopt PHP de resultaten netjes in een array.

Deze array gaan we doorlopen. Dat doen we door ieder item uit de array stuk voor stuk door te lopen. Dat gaat met de while-functie. Binnen de while functie kun je vervolgens iedere rij weer als een array benaderen.

Met het echo'en van de titel uit de array van het resultaat wordt de titel weergegeven. Je kunt hier uiteraard nog HTML-opmaak aan toevoegen. Nu worden alle titels achter elkaar weergegeven, maar dit kan natuurlijk ook onder elkaar.

Tot zover. Mocht je ergens vragen over hebben, dan moedig ik je aan om ze hieronder te stellen. Met het antwoord wordt niet alleen jij geholopen, maar ook anderen die tegen hetzelfde probleem aanlopen kunnen er iets aan hebben!

Geen opmerkingen:

Een reactie posten