2013-12-19 2 views
0

Получил таблицу с указанием значений за квартал.Если Elseif Else в PHP на основе результата запроса MYSQL

 
+--------------+-------------------+ 
| Quarter  | Value    | 
+--------------+-------------------+ 
|2012.Q4  |17000    | 
|2013.Q1  |18000    | 
|2013.Q2  |19000    |x 
|2013.Q3  |26600    |x 
+--------------+-------------------+ 

Получил запрос mysql для расчета разницы между двумя последними строками.

результат MySQL для этого примера дает: 7600

Я хочу, чтобы показать значок в зависимости от результата (на основе иконок шрифта fontawesome в)

If the result > 0 , I want to show the result with icon-caret-up 
If the result = 0 , I want to show the result with icon-caret-right 
If the result < 0 , I want to show the result with icon-caret-down 

Поэтому я добавил следующий код PHP:

<?php 
    $reponse=mysql_query("My SQL Query"); 

if ($reponse > 0) { 
echo "<h1 class=\"uk-text-center uk-margin-bottom-remove\">".(mysql_result($reponse, 0))."<i class=\"uk-icon-caret-up\"></i></h1>"; 
} 

elseif ($reponse == 0) { 
echo "<h1 class=\"uk-text-center uk-margin-bottom-remove\">".(mysql_result($reponse, 0))."<i class=\"uk-icon-caret-up\"></i></h1>"; 
} 

else { 
echo "<h1 class=\"uk-text-center uk-margin-bottom-remove\">".(mysql_result($reponse, 0))."<i class=\"uk-icon-caret-down\"></i></h1>"; 
} 

?> 

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

Любая идея, я новичок в php.

Благодарю вас заранее.

С уважением.

ответ

1

Прежде всего, функции mysql_ * устарели, вам нужно использовать PDO или MySQLi для новой разработки.

Во-вторых, согласно документации, mysql_query возвращает ресурс. http://php.net/mysql_query На этой странице представлено множество примеров того, как его использовать.

Вы должны получить строку после выполнения запроса. (Edit:. Я вижу, вы уже знаете, это потому, что вы делаете это в следующей строке, с mysql_result - нужно просто использовать его, прежде чем пытаться сделать ваше сравнение)

$row = mysql_fetch_assoc($reponse), а затем $row будет массив значения. Поскольку вы не указали фактические имена полей, которые вы используете, я не могу сказать вам, что делать дальше, но прочитайте документы.

Теперь, как только вы получите этот набор кодов, вы можете значительно упростить печать HTML-кода.

$amount = mysql_result($reponse, 0); 

if($amount > 0){ 
    $caret = 'up'; 
}else if($amount == 0){ 
    $caret = 'right'; 
}else{ 
    $caret = 'down'; 
} 
echo '<h1 class="uk-text-center uk-margin-bottom-remove">'.$amount.'<i class="uk-icon-caret-'.$caret.'"></i></h1>'; 

Последняя строка может также быть echo "<h1 class=\"uk-text-center uk-margin-bottom-remove\">{$amount}<i class=\"uk-icon-caret-{$caret}\"></i></h1>"; Но я лично считаю, спасаясь цитаты раздражает. Поэтому я переключил его.

+0

Это работает как шарм. Кстати, большое спасибо за ваши советы, я новичок в php, поэтому я изучаю базовые понятия, даже если это устарело. Это только первый шаг перед переключением на PDO и php framework. Еще раз большое спасибо за всех. С уважением! – Jays

+0

Добро пожаловать - Удачи! – Jessica

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