我正在尝试循环访问数据库并输出与连接表匹配的所有行。
我有以下两个表:
任务项目存储与项目相关的所有数据:
加入任务项存储玩家 ID 和玩家拥有的物品之间的关联:
JS:传入查询表所需的所有信息...
$.getJSON("phpscripts.php", {
"_player" : Player,
"_playerID" : UserID
},
function(returned_data) {
var item_name = returned_data.item_name;
item_image = returned_data.item_image;
$(".questItems").html(item_name + ", " + item_image);
}
);
PHP:
$statsArray = array();
$qry =
'SELECT qi.*
FROM quest_items qi
LEFT JOIN join_questitems jqi ON (qi.item_id = jqi.item_id)
WHERE jqi.user_id = "' . $playerID . '"';
$result = $mysqli->query($qry) or die(mysqli_error($mysqli));
while ($row = $result->fetch_assoc()) {
$myrow = json_encode($row);
array_push($statsArray, $myrow);
}
$k = 0;
while ($k < count($statsArray)) {
echo $statsArray[$k];
$k++;
}
但是,如果我只执行一行,我会得到输出,但仅限一行。我需要两行:
while ($row = $result->fetch_assoc()) {
echo json_encode($row);
exit;
}
$(".questItems").html(item_name + ", " + item_image)
gives: rice, test/path.png
为什么我不能循环遍历充满 json_encoded 行的 PHP 数组并输出它们?我必须设置吗item_name
and item_image
作为数组并循环数组?
EDIT:
$(".questItems").append(item_name + ", " + item_image)
也不行
调试器的网络输出显示正在输出行,但在第一行中,是我的 UTF-8 字符,fàn
,在客户端输出中出现乱码(如您所见)。这很奇怪,就像我的顶部一样phpscripts.php
文件,我把mysqli_set_charset($mysqli, "utf8");