Meertalige website met PHP
Ik moet voor mijn eindwerk een website maken die meertalig is, in het Frans, Nederlands en Engels. Ik heb alle vertalingen in mijn mysql database gestopt in de tabel "tblWebsite" met een veld "id" (Auto increment), "tekstNederlands", "tekstEngels", "tekstFrans". Ik heb alle tekst uit mijn website vertaald en in de velden gestopt. Elke tekst heeft zijn eigen ID uit het veld "id". Nu wil ik de talen laten veranderen door op links te klikken die ik bovenaan mijn website heb gezet.
Quote:
<div class="talen">
<ul>
<li><a href="#" class="nl">Nederlands</a></li>
<li><a href="#" class="en">English</a></li>
<li class="last"><a href="#" class="fr">Français</a></li>
</ul>
</div>
<ul>
<li><a href="#" class="nl">Nederlands</a></li>
<li><a href="#" class="en">English</a></li>
<li class="last"><a href="#" class="fr">Français</a></li>
</ul>
</div>
Ik heb ook een bestand dat connectie maakt met mijn databank.
Quote:
Alleen weet ik nu niet precies hoe ik de juiste tekst uit mijn databank moet halen. Mijn gedachtegang was een variabele maken, bv. als de variabele 1 is moet de tekst veranderen naar het Nederlands, als de variabele 2 is moet de tekst veranderen naar Engels en als de variabele 3 is moet de tekst veranderen naar Frans. De pagina mag refreshen als er op de links wordt geklikt. Ik zou meerdere pagina's kunnen maken maar mijn eindwerk vereist dat ik het uit de databank haal. Weet iemand hoe ik dit het beste zou kunnen doen?
Bedankt!
Tom
Gewijzigd op 07/10/2012 16:04:46 door Tom Corremans
Dan kan je dit doen:
Code (php)
1
2
3
4
5
2
3
4
5
<?php
$lang = (isset($_GET['lang']) ? $_GET['lang'] : 'nl';
$column = 'tekst_' . $lang;
$sql = "SELECT " . $column . " FROM jouwtabel WHERE id = 1";
?>
$lang = (isset($_GET['lang']) ? $_GET['lang'] : 'nl';
$column = 'tekst_' . $lang;
$sql = "SELECT " . $column . " FROM jouwtabel WHERE id = 1";
?>
Je kan het beter zo aanpakken;
text
- id
- url
text_language
- id
- text_id
- language_id
- title
- content
language
- id
- name
Ahv bovenstaande tabellen kan je met 1 query (joins) de correcte inhoud dynamisch krijgen
Ger van Steenderen op 07/10/2012 18:14:39:
geef je kolommen een naam net de taal extensie bv. tekst_nl.
Dan kan je dit doen:
Dan kan je dit doen:
Code (php)
1
2
3
4
5
2
3
4
5
<?php
$lang = (isset($_GET['lang']) ? $_GET['lang'] : 'nl';
$column = 'tekst_' . $lang;
$sql = "SELECT " . $column . " FROM jouwtabel WHERE id = 1";
?>
$lang = (isset($_GET['lang']) ? $_GET['lang'] : 'nl';
$column = 'tekst_' . $lang;
$sql = "SELECT " . $column . " FROM jouwtabel WHERE id = 1";
?>
Bedankt voor je antwoord!
Alleen krijg ik een parse error op de tweede lijn.
Is er hier iets mis bij het vraagteken?
$lang = isset($_GET['lang']) ? $_GET['lang'] : 'nl';
Toevoeging op 07/10/2012 19:00:44:
@Jaron
Helemaal met je eens over het normaliseren :-)
met het volgende regeltje krijg je 'nl', 'en', 'fr' etc. in de variabele $language
Bedankt iedereen voor jullie hulp! Mijn probleem is opgelost. Zonder jullie was het nooit gelukt :)