Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: склонение слов на php
Форумы портала PHP.SU » » Хранение данных, их вывод и обработка » склонение слов на php

Страниц (1): [1]
 

1. classic1698 - 19 Декабря, 2013 - 22:05:57 - перейти к сообщению
Всем привет!
Что-то ни как не могу "допетрить".
Есть код с выводом на слова на php
CODE (htmlphp):
скопировать код в буфер обмена
  1. <?php echo $results['totalRows']?> article<?php echo ( $results['totalRows'] != 1 ) ? 's' : '' ?> in total.


Но нужно сделать на кириллице со словом "материал".
Крутил всяко, но видимо не в том направлении.

CODE (htmlphp):
скопировать код в буфер обмена
  1. $results['totalRows'] // это число выводится из БД.
2. caballero - 19 Декабря, 2013 - 22:14:36 - перейти к сообщению
что сделать?
куда слово надо вставить?
3. classic1698 - 19 Декабря, 2013 - 22:24:05 - перейти к сообщению
caballero пишет:
что сделать?
куда слово надо вставить?

ну это было бы идеально... Закатив глазки

пробовал так
CODE (htmlphp):
скопировать код в буфер обмена
  1. материал<?php echo ( ( $results['totalRows'] != 1 )  ? 'а' ? 'ов' : 'ала' : '' ) ?> всего.

выводит:
1 материал всего
но
2 материалов всего.

и ещё кучу вариантов, всё не то и видимо уже совсем не понимаю...
4. caballero - 19 Декабря, 2013 - 22:45:46 - перейти к сообщению
варианта вообще то всего три

если число заканчивается на 1 то материал
2,3,4 - материала
остальное - материалов
5. VestCoastman - 19 Декабря, 2013 - 22:48:25 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. <?PHP $num = $results['totalRows']%10;
  2.  
  3. switch($num){
  4.    case 1: $end = ''; break;
  5.    case 2:
  6.    case 3:
  7.    case 4: $end = 'а'; break;
  8.    default: $end = 'ов'; break;
  9. }
  10.  
  11. ?>
  12.  
  13. материал<?=$end?>
6. Ch_chov - 19 Декабря, 2013 - 22:59:57 - перейти к сообщению
http://forum.php.su/topic.php?fo...=35&topic=23
7. classic1698 - 19 Декабря, 2013 - 23:06:43 - перейти к сообщению
VestCoastman пишет:
PHP:
скопировать код в буфер обмена
  1. <?PHP $num = $results['totalRows']%10;
  2.  
  3. switch($num){
  4.    case 1: $end = ''; break;
  5.    case 2:
  6.    case 3:
  7.    case 4: $end = 'а'; break;
  8.    default: $end = 'ов'; break;
  9. }
  10.  
  11. ?>
  12.  
  13. материал<?=$end?>


Основных 3 варианта, но есть ещё и значение по умолчанию = 0 материалов, но оно как бы и третье значение. Тут я видимо и тупил. Спасибо.
8. Саныч - 19 Декабря, 2013 - 23:16:27 - перейти к сообщению
caballero пишет:
варианта вообще то всего три

если число заканчивается на 1 то материал
2,3,4 - материала
остальное - материалов
с поправкой на числа заканчивающиеся на 10 - 20
9. caballero - 19 Декабря, 2013 - 23:28:32 - перейти к сообщению
верно
тоже слегка тупанул

 

Powered by ExBB FM 1.0 RC1