MySQL оператор, чтобы показать либо таблицу, либо сообщение - PullRequest
0 голосов
/ 10 ноября 2011

В моей базе данных есть таблица заказов, и как только пользователь входит в свою учетную запись, он / она может просматривать свои предыдущие заказы.

У меня есть следующий код:

    <?php

$result = mysql_query("SELECT * FROM `order` WHERE username = '". $_SESSION['username']."' ")
or die(mysql_error()); ;

echo "<table border='0'><table border width=100%><tr><th>Product</th><th>Quantity</th><th>Price</th><th>Date</th>";
while($info = mysql_fetch_array($result))
{
        echo "<tr>";
        echo "<td>" . $info['name']. "</td>";
        echo "<td>" . $info['quantity']. "</td>";
        echo "<td>" . $info['price']. "</td>";
        echo "<td>" . $info['date']. "</td>";

}
echo "</tr>";
echo "</table>";
?>

Какой оператор mysql я использую, чтобы показать сообщение «Вы еще ничего не заказали» вместо пустой таблицы?

спасибо

Ответы [ 3 ]

1 голос
/ 10 ноября 2011

Использование mysql_num_rows

<?php

$result = mysql_query("SELECT * FROM `order` WHERE username = '". $_SESSION['username']."' ")
or die(mysql_error()); ;

    if (mysql_num_rows($result) == 0) {
       echo 'you have not ordered anything yet';
    } else {
    echo "<table border='0'><table border width=100%><tr><th>Product</th><th>Quantity</th><th>Price</th><th>Date</th>";
    while($info = mysql_fetch_array($result))
    {
            echo "<tr>";
            echo "<td>" . $info['name']. "</td>";
            echo "<td>" . $info['quantity']. "</td>";
            echo "<td>" . $info['price']. "</td>";
            echo "<td>" . $info['date']. "</td>";

    }
    echo "</tr>";
    echo "</table>";
    }
0 голосов
/ 10 ноября 2011

Вы можете использовать mysql_num_rows(), чтобы получить количество строк в наборе результатов.

$rows = mysql_num_rows($result);
if($rows == 0) {
   echo 'you have not ordered anything yet';
}
0 голосов
/ 10 ноября 2011

Вы можете подсчитать количество результатов в своем утверждении, используя mysql_num_rows():

if (mysql_num_rows($result) == 0) {
  echo '<p>You have not ordered anything yet.</p>';
}
else {
  echo "<table...";
}

Также, возможно, вы захотите переместить вторую на последнюю строку (echo "</tr>";)внутри вашего while цикла, поэтому HTML выводится правильно.

...