De database gaat goed, zo ver was ik al, maar ter info:
Tabelstructuur voor tabel `translations`
--
CREATE TABLE `translations` (
`id` int(11) NOT NULL,
`trans_section` text NOT NULL,
`NL` text NOT NULL,
`DE` text NOT NULL,
`EN` text NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--
-- Gegevens worden geëxporteerd voor tabel `translations`
--
INSERT INTO `translations` (`id`, `trans_section`, `NL`, `DE`, `EN`) VALUES
(1, 'title', 'Best Product testers', 'Best Product testers', 'Best Product testers'),
(2, 'slogan', 'Wij testen uw product', 'Wir testen Ihr Produkt', 'We test your product'),
(3, 'short', 'U wilt toch zeker zijn van het feit dat u kwaliteit verkoopt?!', '', '');
--
-- Indexen voor geëxporteerde tabellen
--
--
-- Indexen voor tabel `translations`
--
ALTER TABLE `translations`
ADD PRIMARY KEY (`id`);
--
-- AUTO_INCREMENT voor geëxporteerde tabellen
--
--
-- AUTO_INCREMENT voor een tabel `translations`
--
ALTER TABLE `translations`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=4;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
Dan nu het gene waar het vast loopt.
Ik krijg maar één resultaat uit de DB.
Dit terwijl er toch echt veel meer moeten zijn.
hier de php van voor de <html> tag:
<?php
$link = mysql_connect('localhost', 'deechtenaam', 'hetechtewachtwoord') or die('cannot connect to db server');
mysql_select_db('website_testers') or die('cannot select database');
if(!preg_match('/^(NL)|(DE)|(EN)$/', $_GET['lang'])) {
$lng = 'NL';
}
else {
$lng = $_GET['lang'];
}
$trans = array();
$rs = mysql_query("SELECT trans_section, ".$lng." FROM translations WHERE trans_section = 'title'") or die('cannot select language from database');
while($row = mysql_fetch_array($rs)) {
$trans[$row['trans_section']] = $row[$lng];
}
?>
Het menu script voor autoload wat wel werkt:
<script type="text/javascript">
function submitForm() {
var thelang = document.getElementById('lang').options[document.getElementById('lang').selectedIndex].value;
window.location.href = window.location.pathname + '?lang=' + thelang;
}
</script>
Een stukje menu wat ook werkt:
<li><form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="get">
<label for="lang"><a>Language:</a></label>
<select id="lang" name="lang" onchange="submitForm()">
<option value="NL"<?php if($_GET['lang'] != 'NL' && $_GET['lang'] != 'sp'){ echo " selected=\"selected\"";} ?>>Nederlands</option>
<option value="EN"<?php if($_GET['lang'] == 'EN'){ echo " selected=\"selected\"";} ?>>English</option>
<option value="DE"<?php if($_GET['lang'] == 'DE'){ echo " selected=\"selected\"";} ?>>Deutch</option>
</select>
</form></li>
De aan te roepen regels in de DB.
Ik roep ze juist aan, er staan geen spelfouten in,
Dus ik vermoed dat het fout in het scriptje van voor de <html> tag staat.
<h2><?php echo $trans['title']; ?></h2>
<p class="lead"><?php echo $trans['slogan']; ?><br />
<?php echo $trans['short']; ?></p>
Ik krijg dus letterlijk het eerste resultaat uit de DB,
Maar ik moet de rest dus ook hebben.
Anders kan ik geen hele site vertalen.
Kortom, hellupppppppppppp
- Wat doe ik fout?
-
10-05-2017, 11:00 #1
- Berichten
- 132
- Lid sinds
- 9 Jaar
Wat doe ik fout?
-
-
10-05-2017, 11:18 #2
- Berichten
- 691
- Lid sinds
- 15 Jaar
Re: Wat doe ik fout?
"SELECT trans_section, ".$lng." FROM translations WHERE trans_section = 'title'"
Je zoekt op "title" aan de hand van de waarde die in $lng, daarom krijg je 1 resultaat terug.
Om alles op een taal op te halen verwijder je dit:
WHERE trans_section = 'title'"
Je zou sowieso gebruik moeten maken van mysqli of PDO.
-
10-05-2017, 11:23 #3
- Berichten
- 132
- Lid sinds
- 9 Jaar
Re: Wat doe ik fout?
"SELECT trans_section, ".$lng." FROM translations WHERE trans_section = 'title'"
Je zoekt op "title" aan de hand van de waarde die in $lng, daarom krijg je 1 resultaat terug.
Om alles op een taal op te halen verwijder je dit:
WHERE trans_section = 'title'"
Je zou sowieso gebruik moeten maken van mysqli of PDO.
Als ik dat weg haal, dan krijg ik 500.
Ofwel niets. blanco.
En PDO, ik zou echt niet weten hoe ik dat zou moeten fixen.
-
10-05-2017, 11:28 #4
- Berichten
- 691
- Lid sinds
- 15 Jaar
Re: Wat doe ik fout?
Ben niet helemaal wakker merk ik, zal er straks even naar kijken.
-
11-05-2017, 11:25 #5
- Berichten
- 457
- Lid sinds
- 18 Jaar
Re: Wat doe ik fout?
Als ik dat weg haal, dan krijg ik 500.
Ofwel niets. blanco.
-
11-05-2017, 12:31 #6
- Berichten
- 1
- Lid sinds
- 8 Jaar
Re: Wat doe ik fout?
1 resultaat klopt, er is ook maar 1 record met `trans_section` = "title".
-
11-05-2017, 16:03 #7
- Berichten
- 338
- Lid sinds
- 15 Jaar
Re: Wat doe ik fout?
dat dus; title in de database is allemaal zelfde?
-
12-05-2017, 23:19 #8
- Berichten
- 132
- Lid sinds
- 9 Jaar
Re: Wat doe ik fout?
Allen dank voor het meedenken. Het is inmiddels opgelost.
Plaats een
- + Advertentie
- + Onderwerp
Marktplaats
Webmasterforum
- Websites algemeen
- Sitechecks
- Marketing
- Domeinen algemeen
- Waardebepaling
- CMS
- Wordpress
- Joomla
- Magento
- Google algemeen
- SEO
- Analytics
- Adsense
- Adwords
- HTML / XHTML
- CSS
- Programmeren
- PHP
- Javascript
- JQuery
- MySQL
- Ondernemen algemeen
- Belastingen
- Juridisch
- Grafisch ontwerp
- Hosting Algemeen
- Hardware Info
- Offtopic