如果循环中的行不包含数据,则PHP echo xyz

如果循环中的行不包含数据,则PHP echo xyz,php,mysql,if-statement,echo,while-loop,Php,Mysql,If Statement,Echo,While Loop,如果我的循环返回时没有数据,但无法让它工作,我会尝试回显一些文本。我试过几次,但没有成功 我的代码: $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 I

如果我的循环返回时没有数据,但无法让它工作,我会尝试回显一些文本。我试过几次,但没有成功

我的代码:

$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语句吗?

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

而不是你可能想要的比较:

if ($a == 1) {
因此,不会总是回显历史记录。

使用mysql\u num\u行;它将告诉您是否有任何查询结果

$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>';
};
由于您使用的是assimment而不是comparison,您的if语句也会有问题:$a=1将设置$a=1,$a==1将检查它是否等于1

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

改为

if ($a == 1) {

如果$a==1….

请重新格式化您的代码,但以后请确保您的代码正确缩进和格式化。这使您和其他人更容易阅读代码。
if ($a == 1) {