Hallo,
In deze tutorial zal ik jullie een forum leren scripten doormiddel van PHP.
Wat heb je nodig?
- Tijd
- Ruime PHP ervaring
Indeling:
1: Inleiding
2: Database indeling
3: De config
4: De index
5: Fora weergeven
6: Topics
7: Nieuw topic
8: Reageren
9: Adminopties
Veel plezier!
Deel 2: Database indeling
Tja, als je een forum wilt maken heb je toch wel een database nodig.
Dan kom je bij het volgende uit: Welke MySQL tabellen heb ik nodig?
Voor die vraag heb ik het volgende. Maak een kort "˜verhaaltje"™ met kernwoorden wat je systeem moet kunnen, in dit geval dus een forum.
Ik heb dus het volgende "˜verhaaltje"™ gemaakt:
Een forum heeft categorieën, met daarin weer fora. In die fora zitten topics, die ook weer reacties kunnen bevatten.
Nu maak je de belangrijkste dingen vet gedrukt. Ik houd dit over:
Een forum heeft categorieën, met daarin weer fora. In die fora zitten weer topics, die ook weer reacties kunnen bevatten.
Dus je houd het volgende over:
Forum, categorieën, fora, topics en reacties.
Daar ga je dus je MySQL tabellen op baseren. Dan gaan we bedenken wát er precies ín die tabellen moet komen. Hier maak je dus ook een kort verhaaltje over met kernwoorden. De forum tabel hebben we in principe niet nodig. Dus die kunnen we wegstrepen.
Categorieën: Een categorie heeft een naam nodig. En een ID.
Fora: Een forum heeft ook een naam, beschrijving nodig. En een ID.
Topics: Een topic heeft een onderwerp, post_id, datum en nog wat dingen nodig. (hier komen we later op terug)
Reacties: Ook hier hebben we weer een aantal kolommen nodig. Maar dit is even teveel om zo neer te zetten. (hier komen we ook later op terug)
Dan gaan we voorzichtig de eerste database opzet maken:
Bij de categorie tabel maken we de volgende kolommen: id en naam.
Nu komen we bij de fora tabel. Dit is ook niet zo moeilijk. De kolommen: id, categorie_id, naam, toegang.
De topic tabel: id, forum_id, onderwerp, datum, lid, verwijderd, sticky, gesloten.
Bij de reactie tabel doen we het volgende: id, topic_id, inhoud, verwijderd, laatst_bewerkt, laatst_bewerkt_door.
Ik ga niet de hele database voorkauwen, dit moet je dus zelf in elkaar zetten.
Op naar het volgende deel!
Deel 3: De config
Nu komen we bij t volgende deel: de config.
De config is niet zo heel moeilijk.
Gewoon de sessies starten en met de MySQL connecten.
Voorbeeld code:
Dit was alweer deel 3. Op naar deel 4.
Deel 4: De index
Nu komen we aan bij een rot gedeelte van het forum: de index.
Wat moet er op de index komen? Nou eigenlijk best veel.. De categorieën netjes geordend, met natuurlijk de juiste fora onder de juiste categorie.
We zullen 2 querys krijgen. Eéntje voor de categorieën op te halen, en eentje voor de fora op te halen.
Ik zal even een voorbeeld code geven van hoe de index er ongeveer uit kan zien:
Dit was alweer de index.php.. Je kan dit natuurlijk verder uitbreiden, met bijvoorbeeld een gelezen/ongelezen systeem. Maar dat ga ik in deze tutorial nog niet uitleggen.
Als je iets niet snapt aan dit en misschien andere delen kan je het altijd aan mij of iemand anders vragen.
Deze tutorial wordt binnenkort uitgebreid..
Groeten,
Erik
Je hebt geen enkele recht om deze tutorial op een andere site te plaatsen zonder toestemming van mij, Erik V..
In deze tutorial zal ik jullie een forum leren scripten doormiddel van PHP.
Wat heb je nodig?
- Tijd
- Ruime PHP ervaring
Indeling:
1: Inleiding
2: Database indeling
3: De config
4: De index
5: Fora weergeven
6: Topics
7: Nieuw topic
8: Reageren
9: Adminopties
Veel plezier!
Deel 2: Database indeling
Tja, als je een forum wilt maken heb je toch wel een database nodig.
Dan kom je bij het volgende uit: Welke MySQL tabellen heb ik nodig?
Voor die vraag heb ik het volgende. Maak een kort "˜verhaaltje"™ met kernwoorden wat je systeem moet kunnen, in dit geval dus een forum.
Ik heb dus het volgende "˜verhaaltje"™ gemaakt:
Een forum heeft categorieën, met daarin weer fora. In die fora zitten topics, die ook weer reacties kunnen bevatten.
Nu maak je de belangrijkste dingen vet gedrukt. Ik houd dit over:
Een forum heeft categorieën, met daarin weer fora. In die fora zitten weer topics, die ook weer reacties kunnen bevatten.
Dus je houd het volgende over:
Forum, categorieën, fora, topics en reacties.
Daar ga je dus je MySQL tabellen op baseren. Dan gaan we bedenken wát er precies ín die tabellen moet komen. Hier maak je dus ook een kort verhaaltje over met kernwoorden. De forum tabel hebben we in principe niet nodig. Dus die kunnen we wegstrepen.
Categorieën: Een categorie heeft een naam nodig. En een ID.
Fora: Een forum heeft ook een naam, beschrijving nodig. En een ID.
Topics: Een topic heeft een onderwerp, post_id, datum en nog wat dingen nodig. (hier komen we later op terug)
Reacties: Ook hier hebben we weer een aantal kolommen nodig. Maar dit is even teveel om zo neer te zetten. (hier komen we ook later op terug)
Dan gaan we voorzichtig de eerste database opzet maken:
Bij de categorie tabel maken we de volgende kolommen: id en naam.
Nu komen we bij de fora tabel. Dit is ook niet zo moeilijk. De kolommen: id, categorie_id, naam, toegang.
De topic tabel: id, forum_id, onderwerp, datum, lid, verwijderd, sticky, gesloten.
Bij de reactie tabel doen we het volgende: id, topic_id, inhoud, verwijderd, laatst_bewerkt, laatst_bewerkt_door.
Ik ga niet de hele database voorkauwen, dit moet je dus zelf in elkaar zetten.
Op naar het volgende deel!
Deel 3: De config
Nu komen we bij t volgende deel: de config.
De config is niet zo heel moeilijk.
Gewoon de sessies starten en met de MySQL connecten.
Voorbeeld code:
[COLOR= #0000BB]<?php[/COLOR]
[URL="http://www.php.net/session_start"]session_start[/URL][COLOR= #007700]();[/COLOR]
[COLOR= #0000BB]$verbinding[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/mysql_connect"]mysql_connect[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]localhost[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #DD0000]#[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #DD0000]#[/COLOR][COLOR= #007700])[/COLOR] or [URL="http://www.php.net/die"]die[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/mysql_error"]mysql_error[/URL][COLOR= #007700]());[/COLOR]
[URL="http://www.php.net/mysql_select_db"]mysql_select_db[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]#[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$verbinding[/COLOR][COLOR= #007700]);[/COLOR]
?> Dit was alweer deel 3. Op naar deel 4.
Deel 4: De index
Nu komen we aan bij een rot gedeelte van het forum: de index.
Wat moet er op de index komen? Nou eigenlijk best veel.. De categorieën netjes geordend, met natuurlijk de juiste fora onder de juiste categorie.We zullen 2 querys krijgen. Eéntje voor de categorieën op te halen, en eentje voor de fora op te halen.
Ik zal even een voorbeeld code geven van hoe de index er ongeveer uit kan zien:
[COLOR= #0000BB]<?php[/COLOR]
[COLOR= #FF8000]// De config includen doormiddel van require_once[/COLOR]
[URL="http://www.php.net/require_once"]require_once[/URL] [COLOR= #DD0000]config.php[/COLOR][COLOR= #007700];[/COLOR]
[COLOR= #FF8000]// De categorie query[/COLOR]
[COLOR= #0000BB]$categorie_query[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/mysql_query"]mysql_query[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]"SELECT id, naam FROM forum_categorie ORDER BY id ASC"[/COLOR][COLOR= #007700])[/COLOR] or [URL="http://www.php.net/die"]die[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/mysql_error"]mysql_error[/URL][COLOR= #007700]());[/COLOR]
[COLOR= #FF8000]// We gaan hier kijken of er uber haupt wel categorieën zijn[/COLOR]
[URL="http://www.php.net/if"]if[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/mysql_num_rows"]mysql_num_rows[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$categorie_query[/COLOR][COLOR= #007700]) >=[/COLOR] [COLOR= #0000BB]1[/COLOR][COLOR= #007700])
{[/COLOR]
[COLOR= #FF8000]// Ze zijn er, en dus maken we een while-lus voor het weergeven ervan[/COLOR]
[URL="http://www.php.net/while"]while[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$fetch_categorie[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/mysql_fetch_assoc"]mysql_fetch_assoc[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$categorie_query[/COLOR][COLOR= #007700]))
{[/COLOR]
[COLOR= #FF8000]// We weergeven de naam van de categorie[/COLOR]
[URL="http://www.php.net/echo"]echo[/URL] [COLOR= #DD0000]<h2>[/COLOR][COLOR= #007700].[/COLOR][COLOR= #0000BB]$fetch_categorie[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]naam[/COLOR][COLOR= #007700]].[/COLOR][COLOR= #DD0000]</h2>[/COLOR][COLOR= #007700];[/COLOR]
[COLOR= #FF8000]// Nu gaan we de fora ophalen die bij deze categorie hoort, en weergeven doormiddel van een while-lus[/COLOR]
[COLOR= #0000BB]$fora_query[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/mysql_query"]mysql_query[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]"SELECT id, naam, beschrijving FROM forum_fora WHERE categorie_id = "[/COLOR][COLOR= #007700].[/COLOR][COLOR= #0000BB]$fetch_categorie[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]id[/COLOR][COLOR= #007700]].[/COLOR][COLOR= #DD0000]" ORDER BY id ASC"[/COLOR][COLOR= #007700])[/COLOR] or [URL="http://www.php.net/die"]die[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/mysql_error"]mysql_error[/URL][COLOR= #007700]());[/COLOR]
[URL="http://www.php.net/if"]if[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/mysql_num_rows"]mysql_num_rows[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$fora_query[/COLOR][COLOR= #007700]) >=[/COLOR] [COLOR= #0000BB]1[/COLOR][COLOR= #007700])
{[/COLOR]
[URL="http://www.php.net/while"]while[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$fetch_fora[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/mysql_fetch_assoc"]mysql_fetch_assoc[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$fora_query[/COLOR][COLOR= #007700]))
{[/COLOR]
[COLOR= #FF8000]// Nu gaan we dit forum weergeven[/COLOR]
[URL="http://www.php.net/echo"]echo[/URL] [COLOR= #DD0000]<a href="forum?id=[/COLOR][COLOR= #007700].[/COLOR][COLOR= #0000BB]$fetch_fora[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]id[/COLOR][COLOR= #007700]].[/COLOR][COLOR= #DD0000]">[/COLOR][COLOR= #007700].[/COLOR][COLOR= #0000BB]$fetch_fora[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]naam[/COLOR][COLOR= #007700]].[/COLOR][COLOR= #DD0000]</a><br />
<em>[/COLOR][COLOR= #007700].[/COLOR][COLOR= #0000BB]$fetch_fora[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]beschrijving[/COLOR][COLOR= #007700]].[/COLOR][COLOR= #DD0000]</em>[/COLOR][COLOR= #007700];
}
}[/COLOR]
[COLOR= #FF8000]//Als er nog geen fora is in deze categorie[/COLOR]
[URL="http://www.php.net/else"]else[/URL]
[COLOR= #007700]{[/COLOR]
[URL="http://www.php.net/echo"]echo[/URL] [COLOR= #DD0000]Er is (nog) geen fora in deze categorie.[/COLOR][COLOR= #007700];
}
}
}[/COLOR]
[COLOR= #FF8000]//Er zijn geen categorieën op het forum[/COLOR]
[URL="http://www.php.net/else"]else[/URL]
[COLOR= #007700]{[/COLOR]
[URL="http://www.php.net/echo"]echo[/URL] [COLOR= #DD0000]Er zijn (nog) geen categorieën.[/COLOR][COLOR= #007700];
}[/COLOR]
?> Dit was alweer de index.php.. Je kan dit natuurlijk verder uitbreiden, met bijvoorbeeld een gelezen/ongelezen systeem. Maar dat ga ik in deze tutorial nog niet uitleggen.
Als je iets niet snapt aan dit en misschien andere delen kan je het altijd aan mij of iemand anders vragen.
Deze tutorial wordt binnenkort uitgebreid..
Groeten,
Erik
Je hebt geen enkele recht om deze tutorial op een andere site te plaatsen zonder toestemming van mij, Erik V..


"Je hebt geen enkele recht" Faalappel.nl