使用IF语句

时间:2017-07-30 16:23:47

标签: php

我对PHP很新,所以我的努力​​可能看起来很奇怪,但我想在写这个问题之前尝试自己的实验。我目前的代码有助于展示我尝试做的事情,所以即使它不起作用,我也将其保留原样:

 <?php
$mysqli = new mysqli('localhost', 'xxx', 'xxx', 'MLB');

if (mysqli_connect_errno()) {
    echo '<p>Error: could not connect to database.</p>';
    exit;
}

$sql = "SELECT rank, team_name, record, average, move, hi, lo FROM Rankings WHERE week_id = 4";
$result = $mysqli->query($sql);

if($result->num_rows > 0) {
    echo "<table><tr><th style='text-align:left'>Rank</th><th style='text-align:left'>Team</th><th>Record</th><th>Average</th><th>Move</th><th>HiLo</th></tr>";
    // output data in each row
    while ($row = $result->fetch_assoc()) {
        echo "<tr><td style='text-align:left'>".$row["rank"]."</td><td style='text-align:left'>".$row["team_name"]."</td><td>".$row["record"]."</td><td>".$row["average"]."</td><td ".if($row > 0) {echo 'style="color:green;"';}.">".$row["move"]."</td><td>".$row["hi"]."/".$row["lo"]."</td></tr>";
    }

    echo "</table>";
} else {
    echo "0 results";
}

$mysqli->close();

?>

我通过PHP从MySQL数据库中提取数据并在HTML表格中显示数据库。这个过程很好。现在我想开始根据拉出的值做出格式化决策。在&#39;移动&#39;我的表格栏中,我想根据移动是正数还是负数来改变文本的颜色。我试过在我的WHILE中使用IF语句而没有运气。有什么建议?我甚至关闭了吗?

感谢您的帮助!

3 个答案:

答案 0 :(得分:1)

未经测试,但我认为这样可行:

while ($row = $result->fetch_assoc()) {
    echo "<tr><td style='text-align:left'>".$row["rank"]."</td><td style='text-align:left'>".$row["team_name"]."</td><td>".$row["record"]."</td><td>".$row["average"]."</td><td ".($row["move"] > 0 ? 'style="color:green;"' : '').">".$row["move"]."</td><td>".$row["hi"]."/".$row["lo"]."</td></tr>";
}

这个表达式:

($row["move"] > 0 ? 'style="color:green;"' : '')

如果'style="color:green"'则返回$row["move"] > 0,否则返回''。 (它使用&#34;三元运算符。&#34;)

修改

根据@ chris85的评论更改为$row["move"]以上。

答案 1 :(得分:1)

if移到echo之外并将其分配给变量,然后使用echo中的变量。我也会使用三元运算符。它看起来像是在比较完整数组,而不是您想要比较的索引。尝试:

while ($row = $result->fetch_assoc()) {
        $style = $row['move'] > 0 ? ' style="color:green;"' : '';
        $row['move'] = $row['move'] == 0 ? '-' : $row['move'];
        echo "<tr><td style='text-align:left'>".$row["rank"]."</td><td style='text-align:left'>".$row["team_name"]."</td><td>".$row["record"]."</td><td>".$row["average"]."</td><td{$style}>".$row["move"]."</td><td>".$row["hi"]."/".$row["lo"]."</td></tr>";
}

?:被称为ternary operator,它是一种速记条件。您可以在此处阅读更多内容https://en.wikipedia.org/wiki/%3F:#PHP

答案 2 :(得分:0)

尝试代替:

if($row > 0) {echo 'style="color:green;"';}

更短的if语句:

$Color = ($row > 0 )? "green" : "red";
echo 'style="color:'.$Color.';"';