php - 如何突出显示 4 列中的最小值? MySQL + PHP

标签 php mysql

$result = mysql_query("SELECT * FROM pricing ORDER BY Product ASC LIMIT 5000");

以及随后的 PHP

$counter = 0;
$btncounter = 0;
while($row = mysql_fetch_array($result)){
$counter=$counter+1;
$btncounter=$btncounter+1;
print "<tr>\n";
print "<td>".$row['Product']."</td>\n";
print "<td>".$row['Price1']."</td>\n";
print "<td>".$row['Price2']."</td>\n";
print "<td>".$row['Price3']."</td>\n";
print "<td>".$row['Price4']."</td></tr>\n";

我想用红色/粗体/或下划线显示最低价格,我想弄清楚如何使用 Least() 函数,大致如下: 最低(价格 1,价格 2,价格 3,价格 4)

if($row['Price1'] == LEAST(price1, price2, price3, price4)
{print "<td>Price 1 in Red</td>\n";}

或者沿着那条路线的什么?

谁能指出我正确的方向?

Jan - 我尝试使用您的回答: 但是我的结果都显示为红色, 我有和你一样的 mysql 查询。

while($row = mysql_fetch_array($result))
{
$counter=$counter+1;
$btncounter=$btncounter+1;
print "<tr>\n";
print "<td>".$row['ID']."</td>\n";
print "<td>".$row['Product']."</td>\n";
if ($result['price1'] == $result['smallest_price']) { print "<td><span style='color:red'>".$row['price1']."</span></td>\n"; } else {print "<td>".$row['price1']."</td>\n";}
if ($result['price2'] == $result['smallest_price']) { print "<td><span style='color:red'>".$row['price2']."</span></td>\n"; } else {print "<td>".$row['price2']."</td>\n";}
if ($result['price3'] == $result['smallest_price']) { print "<td><span style='color:red'>".$row['price3']."</span></td>\n"; } else {print "<td>".$row['price3']."</td>\n";}
if ($result['price4'] == $result['smallest_price']) { print "<td><span style='color:red'>".$row['price4']."</span></td>\n"; } else {print "<td>".$row['price4']."</td>\n";}
print "<td>".$row['Last_updated']."</td>\n";

我添加 else 是否正确?

2013 年 10 月 10 日更新 - 开始工作(有点)......

用过: 如果($row['Price1'] == $row['smallest_price']){ print "".$row['Price1']."\n"; } else { print "".$row['Price1']."\n";}

但它仅在所有四个价格都有值时才有效 - 如果没有值怎么办?

最佳答案

你应该在你的查询中使用 Mysql 最少的函数:

$result = mysql_query("SELECT *, LEAST(price1, price2, price3, price4) AS smallest_price FROM pricing ORDER BY Product ASC LIMIT 5000");

while($row = mysql_fetch_array($result)){
    if ($result['price1'] == $result['smallest_price']) {
         // print price 1 in red
    }
}

关于php - 如何突出显示 4 列中的最小值? MySQL + PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19104793/

相关文章:

php - 表单有时仅有效(PHP mySQL)

MySQL 外键错误 : Can't create table

php - 插入语句不起作用。不转移到其他表

php - 从三个表中检查电子邮件是否存在

javascript - jQuery JSON 中有效输入的意外标记

php - mysql_result 资源无效

php - Symfony/Doctrine : fetching data as object

php - 展开 ul li 列表底部的 Accordion /链接

mysql - 哪个 FOSS RDBMS 用于地理空间数据?

mysql - MySQL 数据库中长度为 384 的 VARCHAR 字段的索引