我在MySQL中有一个表,我想检查PHP是否有任何'任务'写的(它是一个todo列表webapp)。如果我还没有显示消息“你还没有添加任何任务”,问题是它没有显示。
PHP假设任务列表永远不会为空,对于用户1(在PHP当前user_id = 2中),例如,它是,因为我还没有在我的MySQL中为用户1插入任何任务(所有任务都是用户2)。
<?php
global $connection;
$user = $_SESSION['user_id'];
$query = "SELECT * FROM to_do_list WHERE user = $user";
$items = mysqli_query($connection, $query);
?>
<div>
<?php if(!empty($items)): ?>
<ul id="myUL">
<?php foreach($items as $item): ?>
<li>
<span class="item<?php echo $item['done'] ? ' done' : '' ?>"><?php echo $item['task']; ?></span>
<?php if(!$item['done']): ?>
<a href="#" class="donebutton">Done</a>
<?php endif; ?>
</li>
<?php endforeach; ?>
</ul>
<?php else: ?>
<p>You haven't added any tasks yet.</p>
<?php endif; ?>
</div>
答案 0 :(得分:2)
mysqli_query返回一个&#34;资源&#34;不是数组 - 所以:
而不是foreach($items as $item):
使用while($item = mysqli_fetch_assoc($items))
现在每个$item
都是一个相关的结果数组(意思是 - 您可以使用它来调用输出的名称,如$item['done']
)
也 - 您应该使用if(!empty($items))
if(mysqli_num_rows($items) > 0)