Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сложение трех $, в зависимости от get-запроса, if($_GET['$emt']) $total_price += $emt; 
:(
    Опции темы
Гриша
  Дата 23.6.2005, 18:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НУС(незнаю|узнаю|создаю)
*


Профиль
Группа: Участник
Сообщений: 181
Регистрация: 12.6.2005
Где: Земля, Москва, Хр ущевка

Репутация: 1
Всего: 1



Здравствуйте. Подскажите решение.
Есть три переменных, которые вызываются get-запросом: $redox, $emt, $sealy и есть переменная $total_price, которая выводит сумму вызванных переменных, например если вызваны переменные $redox и $emt, то $total_price = $redox + $emt.

Вот пример моего скрипта, но результата не получается. Переменная $total_price равняется только сумме одной, последней вызванной переменной, а вместе переменные не складывает.
=======================================================================

Код

@ $redox = $HTTP_GET_VARS['redox']; 
@ $emt = $HTTP_GET_VARS['emt']; 
@ $sealy = $HTTP_GET_VARS['sealy']; 

$HTTP_SESSION_VARS['total_price'] = '0'; 

  if(isset($redox)) 
   { 
// Следующая строка значит, что $total_price += $redox (т.е. функции, которая выводит из базы данных сумму переменной $redox) 
    $HTTP_SESSION_VARS['total_price'] += calculate_price_redox($HTTP_SESSION_VARS['cart_redox']); 
   } 
    
   if(isset($emt)) 
   { 
    $HTTP_SESSION_VARS['total_price'] += calculate_price_emt($HTTP_SESSION_VARS['cart_emt']); 
   } 
    
   if(isset($sealy)) 
   { 
    $HTTP_SESSION_VARS['total_price'] += calculate_price_sealy($HTTP_SESSION_VARS['cart_sealy']); 
   }


Это сообщение отредактировал(а) Гриша - 23.6.2005, 18:23
--------------------
Если долго мучиться, что-нибудь получитЬся.
PM MAIL WWW   Вверх
Mal Hack
Дата 23.6.2005, 20:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Перепиши все через $_GET и $_SESSION. И не плохо былобы функцию взглянуть. В этом коде все правильно.

Цитата
$HTTP_SESSION_VARS['total_price'] = '0';

Без апострофоф.
PM ICQ   Вверх
Black
Дата 23.6.2005, 20:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Web-Development
**


Профиль
Группа: Участник
Сообщений: 980
Регистрация: 15.8.2004

Репутация: 7
Всего: 45



$HTTP_GET_VARS - это устаревшая форма записи, так писать не рекомендуют, если не ошибаюсь, даже в официальном руководстве PHP 4


--------------------
Могу все, но ничего не умею :-)
PM WWW   Вверх
Гриша
Дата 23.6.2005, 23:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НУС(незнаю|узнаю|создаю)
*


Профиль
Группа: Участник
Сообщений: 181
Регистрация: 12.6.2005
Где: Земля, Москва, Хр ущевка

Репутация: 1
Всего: 1



Спасибо за ответы.
Я убрал 0, изменил немного переменные и все работает.

Я вместо этого условия if(isset($redox)), написал вот это if(isset($HTTP_SESSION_VARS['cart_redox'])), это для моего варианта. И все считает правильно.

В место $HTTP_SESSION_VARS я буду использовать $_SESSION, начал с длинного стиля, поэтому пока еще не укоротил.

Но есть еще такой вопрос, можно ли вместо всех условий, просто сложить все три переменные, но применить какую-то функцию, которая будет понимать, что если например какая-то переменная не вызвана, то она должна быть равна 0.
Мне предлагали использовать floatval перед каждой переменной, которые я складываю, но получалось так, что все значения были 0.

Код

$HTTP_SESSION_VARS['total_price'] = calculate_price_redox($HTTP_SESSION_VARS['cart_redox']) + calculate_price_emt($HTTP_SESSION_VARS['cart_emt']) + calculate_price_sealy($HTTP_SESSION_VARS['cart_sealy']);



--------------------
Если долго мучиться, что-нибудь получитЬся.
PM MAIL WWW   Вверх
Black
Дата 24.6.2005, 08:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Web-Development
**


Профиль
Группа: Участник
Сообщений: 980
Регистрация: 15.8.2004

Репутация: 7
Всего: 45



Код

# проверяем существование переменных и если переменная не существует пусть она равнается 0
if(!isset($redox)) { $redox=0; }
if(!isset($emt)) { $emt=0; }
if(!isset($sealy)) { $sealy=0; }

# складываем переменные
$summa = $redox + $emt + $sealy;


Надеюсь, это то что надо.



--------------------
Могу все, но ничего не умею :-)
PM WWW   Вверх
Гриша
Дата 24.6.2005, 17:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НУС(незнаю|узнаю|создаю)
*


Профиль
Группа: Участник
Сообщений: 181
Регистрация: 12.6.2005
Где: Земля, Москва, Хр ущевка

Репутация: 1
Всего: 1



Спасибо PHP-DIRECTOR, да по смысло очень даже подходит, я попробую применить и напише результат.
--------------------
Если долго мучиться, что-нибудь получитЬся.
PM MAIL WWW   Вверх
Opik
Дата 24.6.2005, 17:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Vingrad developer
Сообщений: 1918
Регистрация: 6.10.2004
Где: Рига

Репутация: 24
Всего: 55



А может ещё $_GET прикрутишь?
PM MAIL Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1957 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.