Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
警告:非法字符串偏移量';待办事项PHP_Php_Mysql_Arrays - Fatal编程技术网

警告:非法字符串偏移量';待办事项PHP

警告:非法字符串偏移量';待办事项PHP,php,mysql,arrays,Php,Mysql,Arrays,我试图用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(

我试图用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;?>

奇怪,没有找到列表!
我怎样才能解决这个问题?它不断警告我=>警告:非法字符串偏移量“todo”

我的mysql数据库中存在todo,保存着待办事项的数据

foreach($toDo_info as $key => $info){
    echo $info;
}

最好看看@jeroen的答案…

如果你看这一节:

$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'];
}

您的数据库表
todo
是否有名为“todo”的字段?尝试var_dump($info);若要获取有关您的数组的更多信息$infotodo是表名还是表中的列名?我的列名在表中我想在循环时获取表中的所有todo列我不想获取一个元素如何才能做到这一点?谢谢,但有没有使用foreach的方法?我一直在关注phpacdemy系列中关于如何做待办事项列表的内容,但他使用了PDOforeach@SR11不直接,但在PDO中,您可以使用
fetchAll()
在一个多维数组中一次性获取所有行。您可以使用
foreach
在该数组上循环,所以间接地说,是的。在mysqli中,您可以使用
mysqli\u fetch\u all()
执行相同的操作。关键是获取所有行。它可以工作,但我想循环表中的所有todo列并打印它们。此解决方案将打印循环中的第一行