如何从mysql向php数组发送多个数据并回显前两个条目? 在我的数据库中,我有列名称,xkoord,ykoord。 我试过json,但我猜这不起作用。我所拥有的是以下内容:
function load_db($var, $xkoord, $ykoord){
global $db;
$result = mysqli_query($db,"SELECT $var FROM armydb WHERE xkoord = '$xkoord' AND ykoord = '$ykoord'") OR DIE ('Fehler!');
$json = mysqli_fetch_all ($result, MYSQLI_ASSOC);
echo json_encode($json );
}
我用这种方式调用这个函数:
<?php
$name_array = json_decode(load_db('name', 1, 0), true);
echo $name_array[0];
echo $name_array[1];
?>
这不起作用。 有什么建议吗?
答案 0 :(得分:1)
您需要使用return
,而不是echo
:
return json_encode($json);
echo
只打印其参数,它不会将其返回给函数的调用者。
此外,$name_array
将是一个二维数组:第一个维度是结果的行,第二个维度是列的关联数组。所以$array[0]
是一个数组,你无法回应它。你应该这样做:
echo $name_array[0]['name'];
echo $name_array[1]['name'];
为什么你首先使用json_encode()
?为什么不直接返回数组?
答案 1 :(得分:0)
尝试
function load_db($var, $xkoord, $ykoord){
global $db;
$result = mysqli_query($db,"SELECT $var FROM armydb WHERE xkoord = '$xkoord' AND ykoord = '$ykoord'") OR DIE ('Fehler!');
$resultset = mysqli_fetch_all ($result, MYSQLI_ASSOC);
return $resultset;
}
print_r(load_db('name', 1, 0));
您不必将结果编码为json,因为您只需return
数据并在函数等之间传递它。
答案 2 :(得分:0)
让我们更容易
<?php
$query = mysql_query("select * from armydb where xkoords = '$xcords' and ycords = '$cords'");
// now if you need 1 row;
$row = mysql_fetch_assoc($query);
echo $row['name'];
// if u need more then one
while ($row = mysql_fetch_assoc($query)) {
echo $row['name'];
}
?>