从mysql发送多个数据到php数组

时间:2014-10-02 15:03:44

标签: php mysql arrays json

如何从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];
?>

这不起作用。  有什么建议吗?

3 个答案:

答案 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'];
}

?>