[英]mysql if num rows more than 0 show results else echo no recent activity - not working?
我正在嘗試使此代碼正常工作。 我從數據庫中獲取了不到30天的結果列表。 並在我的div中顯示它們。
效果很好,但是如果沒有結果,我想回顯“最近的活動”,而我無法使這工作。 我正在使用MySQL num行計數和else語句嘗試使它執行我需要的操作,但是即使沒有結果,它也不會顯示最近的活動。
請有人告訴我我要去哪里錯了。
謝謝,
碼:
<div class="dashboard_stats">
<?php require_once 'config.php'; ?>
<?php
$table = 'recent_activity';
echo '<div class="dashboard_stats_heading"><table class="table_other"><tr><td>Description</td><td>Reference</u></td><td>Status</td><td>Supplier Name</td></tr></table></div>';
$query1 = "SELECT * FROM $table WHERE user_id = '{$_SESSION['id']}' AND date > NOW() - INTERVAL 30 DAY ORDER BY date DESC";
$result1 = mysql_query($query1);
while ($row1 = mysql_fetch_array($result1)) {
if(mysql_num_rows($result1)>0){
$date = $row1['date'];
require_once 'time_ago.php';
if($row1['activity_type']==='Bank'){
$activity_type = 'Bank Details Changed';
}else{
if($row1['activity_type']==='Username'){
$activity_type = 'Username Changed';
} else {
if($row1['activity_type']==='Password'){
$activity_type = 'Password Changed';
} else {
if($row1['activity_type']==='Contact'){
$activity_type = 'Contact Details Changed';
} else {
if($row1['activity_type']==='Invoice'){
$activity_type = 'Invoice Submitted';
} else {
if($row1['activity_type']==='Trading'){
$activity_type = 'Trading Suspended';
}
}
}
}
}
}
echo '<table><tr><td><p>'.$activity_type.'</p></td><td><p>1234</p></td><td><p>'.$row1['status'].'</p></td><td><p>';
echo pretty_relative_time($row1['date']);
echo '</p></td></tr><tr class="separator"></tr></table>';
}else{
echo '<div id="content">No Recent Activity</div>';
}
}
echo '</div>';
?>
</div>
您需要將if語句移出while循環,因為如果while循環沒有任何內容要迭代,則不會運行它。
切換if和while
if(mysql_num_rows($result1)>0){
while ($row1 = mysql_fetch_array($result1)) {
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.