2013-07-13 6 views
0

Здравствуйте, я новичок в PHP.IF/ELSEIF сравнение переменных из базы данных

Так у меня есть этот запрос здесь, который проверяет, если Order Total «s status устанавливается равным 1 или 0 в базе данных

$chk_dscnt=mysql_query("SELECT * FROM `discount` WHERE `discount_type` = 'Order Total' "); 
while ($x=mysql_fetch_array($chk_dscnt)) { 
    echo $x['status']; 
} 

(I already have a function to change the status to 1 or 0).

Я хотел бы сделать скидку на $grand_total если status является 1 и отображением нормального $grand_total если статус равен 0. Но даже если я установить status 1 или 0, то всегда выполняет elseif statement и отображает undiscounted price или обычная цена.

Есть ли логическая или синтаксическая ошибка ?? вам необходимо помочь парням :)

if ($x == '1') 
{ 
    $subt = 0; 
     $discounted_price= $grand_total - ($grand_total*(5/100)); 
     $subt= $subt + $discounted_price; 
     echo '<input type=text name=total value='.$subt.'>'; 
} 
else if($x == '0'){ 

    $subt =$grand_total; ; 
     echo '<input type=text name=total value='.$subt.'>'; 

} 
+0

[** Пожалуйста, не используйте '' mysql_ * функции в новом коде **] (http://bit.ly/phpmsql). Они больше не поддерживаются [и официально устарели] (https://wiki.php.net/rfc/mysql_deprecation). См. [** красное поле **] (http://j.mp/Te9zIL)? Узнайте о [* подготовленных операторах *] (http://j.mp/T9hLWi) и используйте [PDO] (http://php.net/pdo) или [MySQLi] (http://php.net/ mysqli) - [эта статья] (http://j.mp/QEx8IB) поможет вам решить, какой из них. Если вы выберете PDO, [здесь хороший учебник] (http://j.mp/PoWehJ). –

ответ

0

в вашем случае $x это массив. так что вы не можете сравнить массив в строку, как этот

if ($x == '1') 

вам нужно использовать индекс для сравнения

if ($x['status'] == '1') 

 Смежные вопросы

  • Нет связанных вопросов^_^