[英]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.