gpt4 book ai didi

php - 回显所有 json_encoded 行

转载 作者:行者123 更新时间:2023-11-29 08:01:28 25 4
gpt4 key购买 nike

我正在尝试循环遍历数据库并输出与连接表匹配的所有行。

我有以下两个表:

quest_items 存储与项目相关的所有数据:

enter image description here

join_questitems 存储玩家 ID 与玩家拥有的元素之间的关联:

enter image description here

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)给出:rice, test/path.png

为什么我不能循环遍历充满 json_encoded 行的 PHP 数组并输出它们?我必须设置item_nameitem_image作为数组并循环数组?

<小时/>

编辑:

  • $(".questItems").append(item_name + ", " + item_image)也不起作用

  • 调试器的网络输出显示正在输出行,但在第一行中,我的 UTF-8 字符 fàn ,在客户端输出中出现乱码(如您所见)。这很奇怪,就像我的 phpscripts.php 的顶部一样文件,我把 mysqli_set_charset($mysqli, "utf8");

enter image description here

最佳答案

您不应单独对每一行进行编码。将所有结果放入一个数组中,然后在完成后对该数组调用 json_encode:

while ($row = $result->fetch_assoc()) {
$statsArray[] = $row;
}
echo json_encode($statsArray);

然后在 Javascript 中,您需要循环返回的数组:

$.getJSON("phpscripts.php", {
"_player" : Player,
"_playerID" : UserID
},
function(returned_data) {
$.each(returned_data, function(i, e) {
var item_name = e.item_name;
var item_image = e.item_image;

$(".questItems").append(item_name + ", " + item_image + "<br/>");
});
};
);

关于php - 回显所有 json_encoded 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23690838/

25 4 0