MySQL tutorial deel 1

Home / Programmeren / Php / Mysql1

PHP opzich is leuk, maar het is nog leuker als je snel en makkelijk data op kan slaan, ordenen en op kan halen, zonder dat je je met moeilijke programmeerconstructies bezig moet houden. Hiervoor is de database. Je geeft hem data, die slaat ie op en beheert hem voor jou, zonder dat jij je met het opslaan zelf bezig moet houden.

Vaak wordt in combinatie met PHP de database MySQL gebruikt. Dat is logisch, want het is allebei "gratis" en opensource. Daarom ga ik in deze tutorial uitleggen hoe je met een MySQL database werkt.

PHPMyAdmin

Omdat je voor het maken van een database meteen wat moeilijkere commando's nodig hebt laten we dit over aan een speciaal programma, dat speciaal is gemaakt voor het beheren van MySQL databases. Een van deze programma's is phpMyAdmin. Dit programma kun je dowloaden op www.phpmyadmin.net. Nadat je deze gedownload hebt unzip je deze in de map in je localhost-map (deze heb je als het goed is ingesteld bij de installatie van WAMP). Als je phpMyAdmin dus wilt starten, dan moet je in je browser gaan naar http://localhost/phpmyadmin Overigens maakt het niet uit waar je hem neerzet, maar het is wel zo makkelijk als je hem op een eenvoudig te bereiken plek zet.

Aansturen in PHP

Nu ben je klaar met de voorbereidingen en kun je ermee gaan werken. Om verbinding te leggen met de MySQL server is er een speciale PHP functie. Deze functie neemt je veel werk uit handen, want je hoeft alleen maar enkele gegevens mee te geven. Deze functie is mysql_connect(). De functie heeft 3 parameters nodig. Allereerst de plek van de MySQL server, de gebruikersnaam en het wachtwoord. Gebruikers en wachtwoorden zijn allemaal in phpMyAdmin in te stellen, maar we gaan er nu even vanuit dat je niets hebt veranderd. Dan ziet de functie er alsvolgt uit:

<?php
mysql_connect("localhost","root","");
?>

Zoals je ziet is de server localhost (dezelfde computer dus), de gebruikersnaam root, en er is geen wachtwoord. Nu moet je een php functie aanroepen die de database selecteert. Dit doe je met de functie mysql_select_db(). Er is 1 parameter, en dat is de naam van de database. Als je database dus testbase heet komt het er alsvolgt uit te zien:

<?php
mysql_connect("localhost","root","");
mysql_select_db("testbase");
?>

Nu moet je nog data uit de database halen, of erin stoppen. Dit doe je met een speciaal taaltje, genaamd SQL. SQL is niet moeilijk, en is voor bijna alle databases gelijk, op een paar accenten na. Aangezien er al data in je database zit (zie de paragraaf Gegevens in de tabel zeten) en het makkelijkste SQL commando het commando voor ophalen is, doen we dat eerst. Eerst voer je het commando in in een variabele en vervolgens geef je de opdracht met de functie mysql_query(), waarvan je het antwoord in een andere variabele stopt. Het geheel komt er dan als volgt uit te zien:

<?php
mysql_connect("localhost","root","");
mysql_select_db("testbase");
$commando="SELECT * FROM `testtabel`";
$resultaat=mysql_query($commando);
?>

Eerst ga ik even stap voor stap uitleggen wat hier gebeurd is.

  1. Eerst wordt een verbinding met de server gemaakt met de functie mysql_connect()
  2. Vervolgens wordt de database met de naam testbase geselecteerd
  3. Dan wordt het commando opgesteld. Het commando betekend vrij naar het Nederlands vertaald: "Pak alle kaarten uit de tabel met de naam testtabel". Stap voor stap vertaald wordt het dan: SELECT is engels voor selecteer, * betekend alles, FROM is engels voor uit en `testtabel` is de tabelnaam
  4. Het commando wordt uitgevoerd met mysql_query en het resultaat gaat naar de variabele $resultaat

Als het bovenstaande niet duidelijk is, lees het dan nog eens rustig over, en vraag desnoods om extra hulp op het forum. Overigens mogen de variabelen ook een andere naam hebben, maar hou het wel overzichtelijk!

De data ophalen en verwerken

Nu gaan we de data ophalen. De variabele $resultaat die je hebt teruggekregen is namelijk alleen een verwijzing naar een aantal kaarten, en bevat zelf geen data. Die data moet namelijk eerst worden opgehaald. Dit is gelukkig niet zo moeilijk! Er zijn verschillende manieren om de data op te halen, maar wij gebruiken de makkelijkste.

Data ophalen gaat met de functie mysql_fetch_array(). Deze functie geeft je de eerste kaart uit de kaartenbak terug. Deze kaart wordt vervolgens in een array gestopt. (Om je geheugen even op te frissen, een array is een verzameling variabelen) Dit gaat als volgt:

<?php
mysql_connect("localhost","root","");
mysql_select_db("testbase");
$commando="SELECT * FROM `testtabel`";
$resultaat=mysql_query($commando);
$array=mysql_fetch_array($resultaat);
?>

De eerste 4 stappen gaan net zoals in het vorige voorbeeld. De nieuwe, 5e stap, zorgt ervoor dat de eerste kaart in de array is gestopt. Deze is op naam en op nummer van het veld gezet. Even een voorbeeld, je hebt een tabel met 3 velden, de velden id, naam en telefoonnummer, en je hebt de bovenstaande commando's uitgevoerd. Dan bevat de array de volgende inhoud:

Je ziet dat de gegevens er dubbel in staan. Welke van de 2 opties je gebruikt maakt niet uit, dat is je eigen keuze. Het makkelijkste is uiteraard het gebruik van de laatste 3.

Een eenvoudig script

Nu gaan we ervoor zorgen dat de gebruiker de inhoud van de 'kaart' te zien krijgt. We zorgen wel voor een beetje opmaak, want anders weet de gebruiker niet wat wij bedoelen. We nemen de eerste 5 regels over van het vorige script

<?php
mysql_connect("localhost","root","");
mysql_select_db("testbase");
$commando="SELECT * FROM `testtabel`";
$resultaat=mysql_query($commando);
$array=mysql_fetch_array($resultaat);

echo "Hallo bezoeker, <br />";
echo "De inhoud van de eerste kaart is:<br />";
echo "Naam: " . $array['naam'] . "<br />";
echo "Telefoonnummer: " . $array['telefoonnummer'] . "<br />";
echo "En het identificatienummer is: " . $array['id'];
?>

Hier kun je zien hoe dat eruit komt te zien.