Создать ответ 
Выборка по заданному возрасту
Автор Сообщение
max16 Не на форуме
Ефрейтор
*

Сообщений: 19
У нас с: Feb 2016
Сообщение: #1
Выборка по заданному возрасту
Добрый день! Еще один вопрос для начинающего.
Я пытаюсь сделать сравнение по возрасту, чтобы в зависимости от возраста пользователя вывести на экран сообщение. Кто младше 20 лет одни скидки, кто старше 50 лет другие.
$data[4] берет данные пользователя из файла, индекс отвечает за возраст и считывается при логине. К сожалению, при входе выдается сообщение, не соответствующее ожидаемому.

Вот код:

if($data[4].value <= 20)
{
echo "Congratulation! You get a special youth discount!";
}
else if($data[4].value >= 50)
{
echo "Congratulations! You get a special aged dicount!";
}
else {
echo "Thank you for visiting us!";
}

Заранее спасибо!
29.03.2016 19:55:11
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,279
У нас с: Aug 2011
Сообщение: #2
RE: Выборка по заданному возрасту
А зачем нужно ".value"???

Если у Вас возраст хранится в $data[4], то и надо сравнивать с $data[4]!
if($data[4] <= 20)
29.03.2016 20:27:03
Найти все сообщения Цитировать это сообщение
max16 Не на форуме
Ефрейтор
*

Сообщений: 19
У нас с: Feb 2016
Сообщение: #3
RE: Выборка по заданному возрасту
Согласен, так я тоже делал, но при этом у меня при возрасте пользователя более 50 лет почему-то выходит первое сообщение.
29.03.2016 21:59:27
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,279
У нас с: Aug 2011
Сообщение: #4
RE: Выборка по заданному возрасту
У меня все работает отлично:
PHP код:
$data[4]=51//для проверки меняем значения

if($data[4] <= 20) echo "Congratulation! You get a special youth discount!";
else if(
$data[4] >= 50) echo "Congratulations! You get a special aged dicount!";
else echo 
"Thank you for visiting us!"

Может в $data[4] неправильные данные подставляются?
29.03.2016 22:06:20
Найти все сообщения Цитировать это сообщение
max16 Не на форуме
Ефрейтор
*

Сообщений: 19
У нас с: Feb 2016
Сообщение: #5
RE: Выборка по заданному возрасту
Я также пытался присвоить значения 20 и 50 отдельным переменным и сравнивал уже с переменными, но результат тот же

Самое интересное, что значения из $data[4] по условию одновременно выводятся на страницу, их сразу видно и это отлично работает, а вот сообщение выводится не по логике
(Последний раз сообщение было отредактировано 29.03.2016 в 22:15:45, отредактировал пользователь max16.)
29.03.2016 22:07:53
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,279
У нас с: Aug 2011
Сообщение: #6
RE: Выборка по заданному возрасту
Так а в приведенном мною примере что именно не так работает?
29.03.2016 22:35:08
Найти все сообщения Цитировать это сообщение
max16 Не на форуме
Ефрейтор
*

Сообщений: 19
У нас с: Feb 2016
Сообщение: #7
RE: Выборка по заданному возрасту
Я написал точно так же как вы и далее при выборе пользователя с любым возрастом у меня идет вывод второго сообщения, при этом точное значение возраста берется из той же самой ячейки массива из файла.

Я вижу из выведенных данных на страницу, что пользователю 15 лет, а ему выводится сообщение как-будто ему за 50.
(Последний раз сообщение было отредактировано 29.03.2016 в 22:55:47, отредактировал пользователь max16.)
29.03.2016 22:54:30
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,279
У нас с: Aug 2011
Сообщение: #8
RE: Выборка по заданному возрасту
Могу предположить, что если Вы берете значения из файла, то возможно у значения переменной тип данных string вместо integer.

Для проверки сделайте echo gettype($data[4]);

Если действительно string, то преобразуйте тип переменной: $data[4]=(int)$data[4];
29.03.2016 23:10:06
Найти все сообщения Цитировать это сообщение
max16 Не на форуме
Ефрейтор
*

Сообщений: 19
У нас с: Feb 2016
Сообщение: #9
RE: Выборка по заданному возрасту
Именно в этом причина, проверил $data[4] это string, но вопрос на каком этапе ее преобразовать? Я поставил преобразование после функции explode, где я вытаскиваю данные из файла через временный массив $reg['age'][$i] = trim($data[4]); но результат - третье сообщение.
29.03.2016 23:34:01
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,279
У нас с: Aug 2011
Сообщение: #10
RE: Выборка по заданному возрасту
Преобразуйте как я накисал выше непосредственно перед тем, как начинаете сравнивать с числами.
29.03.2016 23:39:01
Найти все сообщения Цитировать это сообщение
Создать ответ 


Переход:


Пользователи просматривают эту тему: 1 Гость(ей)



Mail.ru LiveInternet

© Copyright 2011-2016 by UsefulScript.ru