Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Два последних символа
 
 автор: Лена   (24.08.2009 в 22:41)   письмо автору
 
 

Есть такой участок кода:

<?php
while($width2 db_fetch_object($query2)){
$page_content .=  "За ответ <span id = 'poll_answer'>" $width2->answer "</span> проголосовало " $width2->count
  if((
substr($width2->count, -1) == || substr($width2->count, -1) == || substr($width2->count, -1) == 4) && (substr($width2->count, -2) != 12 || 
substr($width2->count, -2) != 13 || substr($width2->count, -2) != 14))
  
$page_content .= " человекa. "
  else
  
$page_content .=  " человек. ";
?>


У меня не получается вот что. Если $width2->count=12 или 13 или 14, выводится не "человек", а "человека", так как в этих числах последняя цифра - 2,3 или 4, на которые у меня поставлено другое условие.
Что подправить, чтобы было такое:
...12 человек
...13 человек
...14 человек
но
4 человека

  Ответить  
 
 автор: Drago   (24.08.2009 в 23:04)   письмо автору
 
   для: Лена   (24.08.2009 в 22:41)
 


<?
$lastnum 
substr($width2->count, -1);
if((
$width2->count >= 2  && $width2->count <= 4) || ($width2->count >= 22 && $lastnum >= && $lastnum <= 4)) 
  
$page_content .= " человекa. ";  
else 
  
$page_content .=  " человек. "
?>

  Ответить  
 
 автор: Лена   (24.08.2009 в 23:23)   письмо автору
 
   для: Drago   (24.08.2009 в 23:04)
 

Поняла. Спасибо за помощь.

  Ответить  
 
 автор: heed   (24.08.2009 в 23:34)   письмо автору
 
   для: Лена   (24.08.2009 в 23:23)
 

if (substr($width2->count, -2, 1) == 1
|| ($xTemp = substr($width2->count, -1)) >4 || $xTemp <2)
$page_content .= ' человек. ';
else $page_content .= ' человекa. ';

такой ещё вариант
// поправил

  Ответить  
 
 автор: Лена   (25.08.2009 в 00:10)   письмо автору
 
   для: heed   (24.08.2009 в 23:34)
 

диапазон поправила:
($xTemp = substr($width2->count, -1)) >=4 || $xTemp <=2)
А вообще-то ваш вариант, наверное, более правильный, потому что в большинстве случаев встречается "человек", а "человека" - уже как исключение.
Спасибо.

  Ответить  
 
 автор: heed   (25.08.2009 в 00:24)   письмо автору
 
   для: Лена   (25.08.2009 в 00:10)
 

*застеснялся* ,) ну если так поправлять , то нужно расположить условия в порядке наиболее часто-возможных совпадений с условием, чтобы реже проверялись менее-вероятные.

  Ответить  
 
 автор: а-я   (25.08.2009 в 01:23)   письмо автору
 
   для: Лена   (24.08.2009 в 22:41)
 

можно еще так

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования