Autor Zpráva
Karci
Profil *
Ahojte, mam mam stranku kde maju uzivatelia body ktore mozu darovat cez formular a chcel by som sa spytat ako spravit aby mi to pri pocte napriklad 5 bodov napisalo "Momentálne máš 5 darovacích bodov" lebo ja to mam momentalne takto ale to napise len (darovaci bod - pri 1) a (darovacie body - pri vsetkom ostatnom 0,2,3,4,5,6...)


$bod = (groot($own['body']) == 1) ? ("darovací bod") : ("darovacie body");
Momentálne máš <b>' . groot($own['body']) . '</b> ' . $bod . '!
pEeLL
Profil
http://diskuse.jakpsatweb.cz/?action=vthread&forum=9&topic=20339 v druhem prizpevku by mohlo byt co chces.
Anonymní
Profil *
to asi nepojde pouzit
Spacebar
Profil
K čemu máš tu funkci groot? Na php.net jsem ji nenašel.
Zkus oddělat ty závorky u ("darovací bod").
AM_
Profil
pak už bych se vykašlal na trinární operátor ?:, ten je dobrý na jednoduché konstrukce, tady bych udělal klasické elseif větvení:
if ($body[strlen($body)-1] == 1)
{
    $caption='darovaci bod';
}
//alternativa: elseif ($body[strlen($body)-1] > 1 AND $body[strlen($body)-1] < 5)
{
    $caption='darovaci body';
}
else 
{
    $caption='darovaci bod';
}

Ty vytučněné pasáže mění chování tak, že se caption orientuje podle poslední číslice - nevím, jak ve slovenštině, ale v češtině je správně "tři sta třicet tři stříbrné stříkačky", ikdyž hovorově se to prakticky nepoužívá. Pak taky třeba u jedenáct to bude jedenáct stříkaček a ne stříkačka, ale to už si kdyžtak douprav :)
Anonymní
Profil *
Dakujem za rady uz som si to spravil takto
function sklonuj($intCount, $w1, $w2, $w3) {
  switch($intCount) {
    case 1:
      return $w1;
    case 2:
    case 3:
    case 4:
      return $w2;
    default:
      return $w3;
  }
}
$bod = sklonuj(groot($own['respectg']), 'darovací bod', 'darovacie body', 'darovacích bodov');

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: