Database maken voor een website met cPanel en phpMyAdmin
PDF versie | Print Versie | Html Versie
Auteur: Zobator | Via Artikel Post
Gezien: 4257 |
Aantal woorden: 1718 |
Datum: Wed, 26 Oct 2011 |
0 commentaar
De meeste websites hebben tegenwoordig een of andere database waarop hun website steunt. Google heeft een gigantische lijst met websites waar jij als bezoeker naar kan zoeken. Ook bijna iedere website waarop je kan inloggen moet een of andere database hebben waar alle belangrijke info staat over de gebruikers die kunnen inloggen. Klinkt heel logisch, maar hoe maken we zo een database en hoe onderhouden we hem?
Als je een website maak je vaak gebruik van cPanel om je website te beheren. (Een ander systeem heet Plesk.)[Inloggen op je Cpanel doe je door naar bv. www.mijnwebsite.com/cpanel te gaan.]
Eens je ingelogd bent zou je een hoop venstertjes onder elkaar moeten zien zoals: Voorkeuren(Preferences), Bestanden(Files), Logboeken(Logs) enzovoort.
Het venster dat wij nodig hebben heeft de titel Databases.
Om te beginnen openen we MySQL® Databases.
Het eerste wat we hier doen is een database aanmaken.
Dit doe je simpelweg door in het vak Nieuwe database maken(Create New Database) een naam voor je database in te geven en op de knop de klikken. (Die naam heeft altijd vanvoor je inlognaam voor cPanel gevolgd door een _ => BV. jan_mijndatabase)
Nu heb je een database. Maar hoe krijg je via je website toegang tot die database?
Je moet een MySQL-gebruikersprofiel aanmaken. Dit kan je doen onder Nieuwe gebruiker toevoegen(Add New User). hier is denk ik geen verdere uitleg nodig.
Het laatste wat je dan moet doen is dat gebruikersprofiel toegang geven tot je database. Onder de titel Gebruiker aan database toevoegen(Add User To Database) kies je simpelweg de gebruikersnaam en de database die je met elkaar wilt verbinden en alles is klaar om aan de slag te gaan met de database zelf!
Ga nu terug naar je cPanel-startvenster (linksboven op de pagina is er een home-knop).
Zoek weer naar het venstertje Databases en open de link phpMyAdmin.
Nu moet er een pagina openen waar links een lijstje komt met alle databases op jouw website. Er staat standaard altijd 1 database: information_schema (hier blijf je beter af). Als alles goed is kan vind je hier nu ook de naam van je nieuwe database terug.
Als je deze database nu opent is hij nog leeg en vraagt hij meteen om een nieuwe tabel te maken om je database mee te vullen.
De database die we gaan maken ziet er als volgt uit.
Fruitdatabase
| Id | Name | Color | Image |
| 1 | banaan | geel |a.jpg |
| 2 | appel | rood |b.jpg |
| 3 | peer | groen |c.jpg |
| 4 | aardbij | rood |d.jpg |
| 5 | kiwi | groen |e.jpg |
Ik noem deze tabel "Fruit" en zoals je ziet heeft iedere rij 4 velden.
Als je dit invult en op start klikt word je gevraagd om die 4 velden te verduidelijken.
Mijn eerste kolom noem ik Id en aangezien dit allemaal cijfers zijn is dit het type INT en ik geef een lengte van 1 op.
Integer is de computernaam voor cijfers en ik kies voor 1 als grootte omdat de langste waarde in die kolom 1 karakter lang is.
De andere kolommen noem in Name, Color en Image en zij zijn allemaal van het type VARCHAR met lengte 10 aangezien het allemaal korte stukjes tekst zijn.
Het enige wat je nu nog moet aanvinken is het vakje AUTO_INCREMENT(A_I) onder ID. (zo moet je dat al niet meer invullen, want nu zal het programma dit vakje zelf invullen)
Van andere vakjes zoals Collatie of Extra moet je je nu nog niets aantrekken. Dat is allemaal voor als je meer geavanceerd gaat werken met databases.
Klik nu op opslaan!
Wat je nu hebt is je basisstructuur van je tabel. Die tabel ga je nu invullen. Ga naar Invoegen. Hier kan je nu mooi de waardes invullen per lijntje (van functie moet je je niets aantrekken, vul enkel de waardes in) en wat handig is: je moet de ID niet invullen! Omdat je AUTO_INCREMENT hebt aangevinkt wordt dit automatisch gedaan als je op het knopje start klikt.
Als alles nu mooi is dan kan je nu je eerste database-tabel bewonderen onder de tab Verkennen.
Hoe gebruik je nu die database op je website?
Stel ik wil naar het woord appel zoeken in deze tabel die ik Fruit heb genoemd en die in de database Fruitdatabase staat. Mijn username van cPanel is Piet. De gebruikersnaam voor MySQL is Jan en het wachtwoord abc123.
<?php
mysql_connect("localhost","jan","abc123") or die(mysql_error());
mysql_select_db("Piet_Fruitdatabase") or die(mysql_error());
$data = mysql_query("SELECT * FROM Fruit WHERE Name = 'appel' ");
while($result = mysql_fetch_array( $data )){echo $result['Name'].": ".$result['Image']."</br>";}
?>
Deze zoekopdracht heeft dan als resultaat: appel: b.jpg
Nog één handigheidje waar ik nog even iets over wil zeggen is het tabel-joining. Dit is een techniek om je database zo compact mogelijk te houden.
Fruitengroentendb
| Id | Name | Color | Sort |
| 1 | banaan | geel | fruit |
| 2 | citroen | geel | fruit |
| 3 | abrikoos | geel | fruit |
| 4 | perzik | geel | fruit |
| 5 | sla | groen | groente |
| 6 | komkommer | groen | groente |
| 7 | broccoli | groen | groente |
| 8 | spinazie | groen | groente |
Deze tabel zouden we kunnen vervangen door 2 tabellen die samen kleiner zijn:
Namendb
| Id | Name | Class |
| 1 | banaan | 1 |
| 2 | citroen | 1 |
| 3 | abrikoos | 1 |
| 4 | perzik | 1 |
| 5 | sla | 2 |
| 6 | komkommer | 2 |
| 7 | broccoli | 2 |
| 8 | spinazie | 2 |
Eigenschappendb
|Id | Color | Sort |
| 1 | geel | fruit |
| 2 | groen | groente |
Als je goed telt hebben de 2 tabellen samen maar 30 veldjes info terwijl de grote tabel 32 veldjes gebruikt. maar hoe ga je deze twee tabellen nu samenvoegen om hetzelfde resultaat te krijgen als de grote tabel? Door ze in de zoekactie aan elkaar te plakken. De database waar deze tabellen instaan noem ik Joindatabase.
<?php
mysql_connect("localhost","jan","abc123") or die(mysql_error());
mysql_select_db("Piet_Joindatabase") or die(mysql_error());
$data = mysql_query("SELECT Namendb.Name FROM Namendb JOIN Eigenschappendb ON Namendb.Class=Eigenschappendb.ID WHERE Color = 'geel' ");
while($result = mysql_fetch_array( $data )){echo $result['Name'].": ".$result['Color']." ".$result['Sort']."</br>";}
?>
Dit zou als uitkomst hebben:
banaan: geel fruit
citroen: geel fruit
abrikoos: geel fruit
perzik: geel fruit
Net alsof je in de grote tabel hebt gezocht. Met dit trucje kan je je database drastisch compacter maken als je tabellen uit enkele honderden rijen bestaat.
Ik hoop dat je hier iets aan hebt.
Een toepassing van een database vind je hier!
Over de Auteur
Zobator is een jonge webmaster die houdt van met computers bezig te zijn. Als hobby heeft hij, samen met zijn beste vriend, een eigen spelletjeswebsite!
Gerelateerde artikelen
- deel dit artikel met anderen
Beoordeling: 5.0
Login om te stemmen