尝试使用PHP执行待办事项列表
但是收到此错误警告:非法字符串偏移' todo'
$userhastodo = "";
$toDo_Query = "SELECT * FROM `todo` WHERE `for`='".$_SESSION['id']."'";
$toDo_run_query = mysqli_query($link , $toDo_Query);
$toDo_num_rows = mysqli_num_rows($toDo_run_query);
if($toDo_num_rows >= 1){
$toDo_get_info = mysqli_fetch_array($toDo_run_query);
$toDo_info = $toDo_get_info;
foreach($toDo_info as $info){
echo $info['todo'];
}
}
else{
$userhastodo = "You have no lists here :( !";
}
位于我的todo.php页面顶部
在html部分
<?php if(empty($toDo_get_info)):?>
<div class="empty">
<i class="fa fa-meh-o fa-5x"></i>
<h3>Strange, no lists found!</h3>
</div>
<?php else: ?>
<ul class="list">
<?php foreach($toDo_info as $info_in_toDo):?>
<li><span><?php echo $info_in_toDo['todo']?></span></li>
<?php endforeach;?>
</ul>
<?php endif;?>
我该如何解决这个问题?它一直警告我=&gt;警告:非法字符串偏移&#39; todo&#39;
todo存在于我的mysql数据库中,其中包含待办事项的数据
答案 0 :(得分:0)
尝试更改为
foreach($toDo_info as $key => $info){
echo $info;
}
更好的是看@ jeroen的答案......
答案 1 :(得分:0)
如果你看看这一节:
$toDo_get_info = mysqli_fetch_array($toDo_run_query);
$toDo_info = $toDo_get_info;
foreach($toDo_info as $info){
echo $info['todo'];
}
您看到结果集中有一行,因此$toDo_info
是包含一个完整行的一维数组。
您使用foreach
遍历该行,这样您将获得该行的所有值,这些是字符串,而不是数组。
你只需要:
echo $toDo_get_info['todo'];
编辑:要获取所有行并回显所有项目,您需要获取所有行:
while ($toDo_get_info = mysqli_fetch_array($toDo_run_query))
{
// add your html to add list items here as well
echo $toDo_get_info['todo'];
}