当前位置: 首页 > 知识库问答 >
问题:

警告:非法字符串偏移量“todo”PHP

墨翔宇
2023-03-14

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

todo存在于我的mysql数据库中,其中包含待办事项activity的数据

共有2个答案

窦成荫
2023-03-14

试着改成这个

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

最好还是看看@Jeroen的答案...

元彦君
2023-03-14

如果您查看以下部分:

$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'];
}
 类似资料:
  • 问题内容: 将我的php版本更新到5.4.0-3后,我收到一个奇怪的PHP错误。 我有这个数组: 当我尝试像这样访问它时,会收到奇怪的警告 我真的不想只编辑我的php.ini并重新设置错误级别。 问题答案: 请尝试这种方式。…我已经测试了此代码。

  • 问题内容: 我正在尝试使用示例php代码模拟此错误,但尚未成功。任何帮助都会很棒。 “不能将字符串偏移量用作数组” 问题答案: 对于PHP4 …这重现了错误: 对于PHP5 …这重现了错误: (实际上来自bugs.php.net) 编辑, 因此,即使是字符串,为什么错误也不会出现在第一个if条件中。 因为PHP是一种非常宽容的编程语言,所以我猜。我将用代码说明我的想法:

  • 问题内容: 我一直在慢慢学习PHP,并找到了有关其他开发人员发布的主题和解决方案的一系列信息。我正在尝试让Android应用程序通过HTTP发布将文件上传到PHP服务器。但是,尝试在PHP中写入文件时,服务器端无法正常工作。 这是PHP代码: 我已经从检查客户端的鲨鱼中知道HTTP帖子已正确发送,并且我已确保将文件写入的目录具有正确的权限,并且php安全模式已设置为off。 apache2 err

  • 问题内容: 最近更新到PHP 7.1,并开始出现以下错误 警告:第29行遇到非数字值 这是第29行的样子 在本地主机上一切正常。 任何想法如何解决这个问题或它是什么? 问题答案: 似乎在PHP 7.1中,如果遇到非数字值,将发出警告。请参阅此链接。 这是与您收到的警告通知有关的相关部分: 当使用期望数字或它们的赋值等效项的运算符强制无效字符串时,将引入新的E_WARNING和E_NOTICE错误。

  • 相反,我希望保持相同的日期和时间,如:Wed Sep 09 09:58:00,这样我就可以将这个日期对象分别转换为“yyyy-mm-dd”、“hh:mm:ss”和“yyyy-mm-dd't'hh:mm:ss”格式的字符串。

  • 我想知道JLabel是不是真的不能在字符串和图标旁边显示一个值。例如显示时钟变量.. 和JLabel方法,如下所示。 我知道方法只适用于String参数。但是由于clock变量不能转换成String,我真的不知道如何在标签上显示它。或者我应该用什么来代替JLabel来显示时钟变量。