0
我正在做一個調查跟蹤網站,我遇到了麻煩。我想顯示過去7天內完成的所有調查。我使用mysqli_fetch_row來查看是否有任何行被檢索,並且它們是否顯示它們。如果他們在過去7天內沒有被強制執行,我希望它顯示「最近沒有強制調查要顯示」。爲什麼mysqli_fetch_row阻止顯示我的所有結果?
<?php
require('db/connect.php');
if (!isset($_GET['sort'])) {
$sort = 'client_id';
} else {
$sort = $_GET['sort'];
}
if ($result = $db->query("SELECT client_id, date_added, client, email, date_sent, date_completed FROM clients NATURAL JOIN surveys WHERE date_completed BETWEEN DATE_SUB(CURDATE(), INTERVAL 7 DAY) AND CURDATE() ORDER BY $sort")) {//shows surveys completed in the last 7 days
if (mysqli_fetch_row($result) == 0) {
echo "No recently completed surveys to show.";
} else {
echo "<table>";
echo "<tr><th><a href='portal.php?sort=client_id'>ID</a></th><th><a href='portal.php?sort=date_added'>Date Added</a></th><th><a href='portal.php?sort=client'>Client</a></th><th><a href='portal.php?sort=email'>Email</a></th><th><a href='portal.php?sort=date_sent'>Sent</a></th><th><a href='portal.php?sort=date_completed'>Completed</a></th>";
$rows = $result->num_rows;
for ($num = 0; $num < $rows; ++$num) {
$row = $result->fetch_array(MYSQLI_NUM);
$client_id = $row[0];
$date = $row[1];
$client = $row[2];
$email = $row[3];
$sent = $row[4];
$completed = $row[5];
echo "<tr>";
echo "<td>$client_id</td>";
echo "<td>$date</td>";
echo "<td>$client</td>";
echo "<td>$email</td>";
echo "<td>$sent</td>";
echo "<td><a href='survey/completed/index.php?id=$client_id'>$completed</a></td>";
echo "</tr>";
}
echo "</table>";
}
}
?>
當我刪除了mysqli_fetch_row的if語句,它顯示了所有最近完成的調查,但是如果我離開它,它總是會留下一個出來。誰能幫忙?
你爲什麼混合* *程序與*面向對象的風格*,即。 'mysqli_fetch_row()','$ result-> fetch_array()'? – Marcus
'if(mysqli_fetch_row($ result)== 0){'獲取第一行,然後丟棄該結果 –
@MarkBaker任何想法如何解決它?我以爲我看到如果返回0結果,如果它們是,則打印一條消息,如果沒有,則顯示數據。 – jaydickey