如果Elseif Else在PHP中基于MYSQL查询结果

时间:2013-12-19 16:59:59

标签: php mysql sql

有一个表格显示每季度的值。

+--------------+-------------------+
| 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 个答案:

答案 0 :(得分:1)

首先,不推荐使用mysql_ *函数,需要使用PDO或MySQLi进行新的开发。

其次,正如文档所说,mysql_query返回一个资源。 http://php.net/mysql_query该页面上有很多关于如何使用它的例子。

执行查询后,您必须获取一行。 (编辑:我看到你已经知道了这一点,因为你是在下一行中使用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>";但我个人觉得逃避引号很烦人。所以我换了它。