Enkelvoud - meervoud
ik weet dat je voor enkelvoud en meervoud ngettext kunt gebruiken.
Echter gaat het hiet over gegevens in de database.
Ik zal het proberen uit te leggen mbv een voorbeeld.
mijn database structuur:
id - item - prijs
Een voorbeeld
1 - DVD - 20
Nu wordt er echter in het script bepaald aan de hand van een prijs hoeveel DVD's je kan kopen
Voorbeeld, ik heb 65 euro bespaard => Je kan floor(65/20) = 3 DVD kopen.
Echter zou dat moeten zijn 3 DVD's, de meervoudsvorm dus.
Hoe zou ik dit het best aanpakken om dit op te slaan in de database? Zodat het enkelvoud + het meervoud worden opgeslaan. En hoe zou je dit dan aanroepen?
Het lijkt me dat dit via een array wel zou moeten lukken, maar ik zie het toch nog niet helemaal voor me...
Gewoon enkelvoud en meervoud naam/veld in je tabel.
Code (php)
1
2
3
4
5
2
3
4
5
<?php
$getal = 3;
$s = ($getal == 1) ? "" : "'s";
echo 'Je kan ' . $getal . ' DVD' . $s . ' kopen.';
?>
$getal = 3;
$s = ($getal == 1) ? "" : "'s";
echo 'Je kan ' . $getal . ' DVD' . $s . ' kopen.';
?>
Code (php)
Zoiets? Je snapt vast wel wat er hier gebeurt. Waarom ik met != (ongelijk aan) 1 werk is omdat bij een aantal van 0, ook de meervoudsvorm wordt gebruikt.
Het is namelijk "U heeft 0 dvd's besteld" en niet "U heeft 0 dvd besteld"
SanThe schreef op 30.05.2008 15:38:
Code (php)
1
2
3
4
5
2
3
4
5
<?php
$getal = 3;
$s = ($getal == 1) ? "" : "'s";
echo 'Je kan ' . $getal . ' DVD' . $s . ' kopen.';
?>
$getal = 3;
$s = ($getal == 1) ? "" : "'s";
echo 'Je kan ' . $getal . ' DVD' . $s . ' kopen.';
?>
Dit is helaas niet helemaal dynamisch, stel dat je dvd's en boeken kan kopen, dan is het gemakkelijker vanuit de database (of evt. met een array, wanneer de aantallen binnen de perken blijven)
Gewijzigd op 01/01/1970 01:00:00 door Robert Deiman
ok bedankt allemaal, ik kom er wel aan uit, redelijk gemakkelijk eigenlijk. had er gewoon nog niet aan gedacht om de enkelvouden en meervouden in een verschillende kolom op te slaan
Boek's lijkt me niet echt goed ;p
//edit
Ow was al gezegd :) Is het niet veel beter om sowieso niet met meervoud te werken? Is het beter om gewoon 'U kunt het volgende aantal DVD's bestellen: 1'
of iets in die richting ;p