PHP эхо XYZ, если строки в цикле не содержат данных - PullRequest
3 голосов
/ 18 июня 2010

Я пытаюсь повторить некоторый текст, если мой цикл возвращается без данных, но не может заставить его работать. Я попробовал несколько вещей, но не повезло.

мой код:

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

Может ли кто-нибудь помочь мне с тем, как делать операторы в цикле`?

Ответы [ 4 ]

3 голосов
/ 18 июня 2010

У вас есть назначение, которое возвращает результат назначения (т. Е. 1)

if ($a = 1) {

вместо сравнения, чего вы, вероятно, и хотите:

if ($a == 1) {

Следовательно, «Нет истории» всегда будет отражено.

2 голосов
/ 18 июня 2010

используйте 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>';
};

У вас также будут проблемы с оператором if, поскольку вы используете assigment вместо comparison: $a = 1 установит $ a = 1, а $a == 1 проверит, что равно 1

1 голос
/ 18 июня 2010

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

0 голосов
/ 18 июня 2010

== - сравнение, = - назначение.

Изменить на

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