Mysqli查询在if / else语句中无法正常工作

时间:2016-12-11 16:25:23

标签: php mysqli

我在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>

1 个答案:

答案 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)