我想让这段代码正常运行。我从我的数据库中获得了一个不到30天的结果列表。并在我的div中显示它们。
这样可以正常工作,但是如果没有结果我想要回显No Recent Activity,我无法让这一点工作。我正在使用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>
答案 0 :(得分:0)
你需要将if语句移出while循环,因为如果没有任何东西可以迭代迭代,那么它就不会被运行。
切换if和while
if(mysql_num_rows($result1)>0){
while ($row1 = mysql_fetch_array($result1)) {