【问题标题】:Warning: Illegal string offset [closed]警告:非法字符串偏移[关闭]
【发布时间】:2014-10-29 02:51:59
【问题描述】:

我是 oop 新手,当我有一个数组查询(仅请求图像 url)但当我向查询数组(表中的图像 id)添加第二个维度时,我有一个图像显示,我刚刚结束了收到警告消息“警告:非法字符串偏移”。我在数据库类中使用了 mysqli_fetch_assoc,然后通过 foreach 循环运行结果。

这是我收到的信息。

提前感谢您提供的任何帮助。

页面代码

$user = $_SESSION['user_name'];

        $query = "SELECT gallery_image, 'gallery_id' FROM gallery WHERE user_name = '$user' ORDER BY gallery_id DESC";
        $result = $obj_db->get_gallery($query);
        foreach ($result as $image ) {
            foreach ($image as $key => $value) {
                echo '<div class="gallery_item"><a href="proof.php?image='.$value['gallery_id'].'"><img src="'.$value['gallery_image'].'"></a></div>';
            }
        }

数据库类代码

function get_gallery($sql){
        $obj_res = mysqli_query($this->obj_db_conn, $sql);
            if(mysqli_errno($this->obj_db_conn)){
                    die ("Failed query: $strSql".$this->obj_db_conn->error);
     }
        $arResults = array();
                while($arRow = mysqli_fetch_assoc($obj_res)){
                    $arResults[] = $arRow;

                }
                    return $arResults;

【问题讨论】:

  • 删除引号 => 'gallery_id' 这是一个列,而不是一个值。您显然不是在检查错误; .
  • 谢谢,我刚刚尝试过,但很遗憾没有运气。
  • 这是问题的一部分。现在,您需要检查其他地方的错误。
  • @SIH 警告显示在哪一行?
  • 我一直害怕问的问题:session_start(); 已加载,对吗?

标签: php arrays string oop warnings


【解决方案1】:

如果您在$result 上的var_dump 输出给出这个,

array(2) { 
    [0]=> array(2) { 
        ["gallery_image"]=> ""
        ["gallery_id"]=> ""
    } 
    [1]=> array(2) { 
        ["gallery_image"]=> ""
        ["gallery_id"]=> ""
    } 
} 

您的页面代码中不需要两个嵌套的foreach 循环。一个foreach 循环就足够了。

   $query = "SELECT gallery_image, gallery_id FROM gallery WHERE user_name = '$user' ORDER BY gallery_id DESC";
   $result = $obj_db->get_gallery($query);
   foreach ($result as $image ) {
        echo '<div class="gallery_item"><a href="proof.php?image='.$image['gallery_id'].'"><img src="'.$image['gallery_image'].'"></a></div>';
   }    

【讨论】:

  • 谢谢@Sithu 和 Fred-ii-。 Sithu 效果很好。
猜你喜欢
  • 2021-09-30
  • 2013-09-13
  • 2013-04-11
  • 2012-04-09
  • 2019-07-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多