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

时间:2010-06-18 13:32:45

标签: 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 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语句吗?

4 个答案:

答案 0 :(得分:3)

你有一个作业,它返回作业的结果(即1

if ($a = 1) {

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

if ($a == 1) {

因此,“无历史”将永远得到回应。

答案 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

答案 2 :(得分:1)

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

答案 3 :(得分:0)

==是一种比较,=是一项任务。

更改为

if ($a == 1) {