【问题标题】:PHP echo xyz if rows in loop contain no data如果循环中的行不包含数据,则 PHP 回显 xyz
【发布时间】:2011-03-05 10:38:35
【问题描述】:

如果我的循环返回时没有数据但无法正常工作,我正在尝试回显一些文本。我尝试了一些东西,但没有运气。

我的代码:

$result = mysql_send("SELECT * FROM datatable WHERE id='".
    $_SESSION['id']."'ORDER BY id ASC LIMIT 2");

while($row=mysql_fetch_array($result)) {
    $a = 1;
    extract($row);

    echo 'Trans ID: ';
    echo $row['trans_id'];
    echo '<br>';
    echo 'Amount: ';
    echo $row['amount'];
    echo '&nbsp;';
    echo $row['euros'];
    echo '<br>';
    echo '<br>';
}


if ($a = 1) {
    echo 'No History';
} else {
    echo '<a href="#">View history</a>';
};

谁能帮我解决如何在循环中执行 if 语句?

【问题讨论】:

  • Artefacto 重新格式化了您的代码,但以后请确保您的代码正确缩进和格式化。这使您和其他人更容易阅读代码。

标签: php mysql if-statement echo while-loop


【解决方案1】:

你有一个赋值,它返回赋值的结果(即1

if ($a = 1) {

而不是比较,这可能是您想要的:

if ($a == 1) {

因此,“无历史记录”将始终得到回应。

【讨论】:

    【解决方案2】:

    使用mysql_num_rows();它会告诉你是否有任何查询结果

    $result = mysql_send("SELECT * FROM datatable WHERE id='".
    $_SESSION['id']."'ORDER BY id ASC LIMIT 2");
    
    $count = mysql_fetch_array($result);
    
    if($count > 0) {
        while($row=mysql_fetch_array($result)) {
            # your code
        }
    }
    
    # NOTE THE == not =
    if ($a == 1) {
        echo 'No History';
    } else {
        echo '<a href="#">View history</a>';
    };
    

    当您使用 assigment 而不是 comparison 时,您的 if 语句也会出现问题:$a = 1 将设置 $a = 1,$a == 1 将检查它是否等于 1

    【讨论】:

      【解决方案3】:

      == 是一个比较,= 是一个赋值。

      改成

      if ($a == 1) {
      

      【讨论】:

        【解决方案4】:

        if($a == 1) ....

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-11-26
          • 2021-12-31
          • 2015-10-21
          • 2013-08-02
          • 2017-11-27
          • 2014-11-13
          • 1970-01-01
          • 2018-05-09
          相关资源
          最近更新 更多