簡體   English   中英

警告:PHP中的字符串偏移量非法

[英]Warning: Illegal string offset in PHP

我想通過內部聯接打印出用戶的數據,但是它不起作用。 該數組已正確填充到函數中,並且位於foreach之前,但始終告訴我:

警告:PHP中的字符串偏移量非法

突破之前的陣列

array (size=6)
  'user_id' => string '1' (length=1)
  'name' => string 'Vandenbergh' (length=11)
  'surname' => string 'Jan' (length=3)
  'avatar' => string '1394041001.jpg' (length=21)
  'member_id' => string '21' (length=2)
  'group_id' => string '18' (length=2)

功能

public function getMembersInfo($group_id)
{
    var_dump($group_id);
    $db = new Db();
    $select = "SELECT u.user_id, u.name, u.surname, u.avatar, g.member_id, g.user_id, g.group_id FROM tblusers u INNER JOIN tblgroup_member g ON u.user_id = g.user_id WHERE g.group_id=" . $group_id .  "";

//  $result = $db->conn->query($select);
    //return $data=$result->fetch_assoc();

    $result = $db->conn->query($select);

$result_data = mysqli_fetch_assoc($result);
    var_dump($result_data);
return $result_data;

}

PHP

$memberinfo = $group->getMembersInfo($group_id);
var_dump($memberinfo);


 <?php 
        var_dump($memberinfo)   ;
      foreach ($memberinfo as $info) {
            echo "<p>" . $info['name'] . $info['surname'] . "</p>";

      }

        ?>

您只能從getMembersInfo方法中獲得一個數組,而不是一個數組。 因此,當您編寫foreach ($memberinfo as $info) ,您只在數據庫中的一行上進行迭代。

為自己注釋掉這些行,然后查看:

var_dump($memberinfo);
//foreach ($memberinfo as $info) {
    $info = $memberinfo;
    echo "<p>" . $info['name'] . $info['surname'] . "</p>";
//}

要解決此問題,請刪除foreach循環,或者將來自MySQL查詢的結果附加到getMembersInfo()方法內的數組中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM