开发者

PHP echo xyz if rows in loop contain no data

I am trying to echo some text if my loop returns wi开发者_StackOverflow中文版th no data but can't get it do work. I have tried a few things but no luck.

my code:

$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>';
};

Can Anyone help me with how to do if statements on a loop`?


You have an assignment, which returns the result of the assignment (i.e. 1)

if ($a = 1) {

instead of a comparison, which is what you probably want:

if ($a == 1) {

Therefore, "No history" will always be echoed.


use mysql_num_rows(); it will tell you if you have any results from query

$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>';
};

You will also have issue with your if statement as youu are using assigment rather than comparison: $a = 1 will set $a = 1 and $a == 1 will check of it equals 1


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


== is a comparison, = is an assignment.

Change to

if ($a == 1) {
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜