Php 将多行数据库放入数组(dropPin)

Php 将多行数据库放入数组(dropPin),php,Php,问题 如上所述。我有一个如下所示的代码示例 $mapItems = array( array("id" => 1, "title" => "map pin 1", "xcoord" => "420", "ycoord" => "120"), array("id" => 2, "title" => "map pin 2", "xcoord" => "429", "ycoord" => "129"), array("id" =&

问题

如上所述。我有一个如下所示的代码示例

$mapItems = array(
    array("id" => 1, "title" => "map pin 1", "xcoord" => "420", "ycoord" => "120"),
    array("id" => 2, "title" => "map pin 2", "xcoord" => "429", "ycoord" => "129"),
    array("id" => 3, "title" => "map pin 3", "xcoord" => "329", "ycoord" => "329")
);
问题是,我想从数据库中获取数据并放入一个数组,如上图所示。我试过了,但我不知道它是怎么工作的。下面是我的一些代码:

$mapItems = array();
$qry='SELECT l.loc_x, l.loc_y, m.member_name '.
     'FROM location l '.
     'JOIN member m ON m.member_id = l.member_id '.
     "WHERE l.map_id = '$id'";
$result=mysqli_query($con, $qry);
$tempNo=1;
while($rows=mysqli_fetch_array($result)){
    $mapItems["id"] = $tempNo;
    $mapItems["title"] = $rows['member_name'];
    $mapItems["xcoord"] = $rows['loc_x'];
    $mapItems["ycoord"] = $rows['loc_y'];
    $tempNo++;
}
我想通过从数据库中读取数据,使我的底层代码看起来与顶层代码完全相同。提前谢谢

解决方案

最后我设法找到了解决问题的办法

$qry='SELECT l.loc_x, l.loc_y, m.member_name '.
     'FROM location l '.
     'JOIN member m ON m.member_id = l.member_id '.
     "WHERE l.map_id = '$id'";
$result=mysqli_query($con, $qry);
$i=1;
$mapItems = array();
while($rows=mysqli_fetch_array($result)){
    $loc = array("id"     => $i, 
                 "title"  => $rows['member_name'],
                 "xcoord" => $rows['loc_x'],
                 "ycoord" => $rows['loc_y']);
    $mapItems[] = $loc;
    $i++;
}
参考资料:

试试这个

$i = 0; //array index
while($rows=mysqli_fetch_array($result)){
  $mapItems[$i]["id"] = $tempNo;
  $mapItems[$i]["title"] = $rows['member_name'];
  $mapItems[$i]["xcoord"] = $rows['loc_x'];
  $mapItems[$i]["ycoord"] = $rows['loc_y'];
  $tempNo++;
  $i++;
}
试试这个

$i = 0; //array index
while($rows=mysqli_fetch_array($result)){
  $mapItems[$i]["id"] = $tempNo;
  $mapItems[$i]["title"] = $rows['member_name'];
  $mapItems[$i]["xcoord"] = $rows['loc_x'];
  $mapItems[$i]["ycoord"] = $rows['loc_y'];
  $tempNo++;
  $i++;
}

我希望这对你有帮助

$qry="SELECT l.loc_x, l.loc_y, m.member_name FROM location l JOIN member m ON m.member_id = l.member_id WHERE l.map_id = '$id'";
$result=mysqli_query($con, $qry);

$mapItems = array();
$tempNo=1;
while($rows=mysqli_fetch_array($result)) {
   $mapItems[] = $row;
}
print_r($mapItems);

我希望这对你有帮助

$qry="SELECT l.loc_x, l.loc_y, m.member_name FROM location l JOIN member m ON m.member_id = l.member_id WHERE l.map_id = '$id'";
$result=mysqli_query($con, $qry);

$mapItems = array();
$tempNo=1;
while($rows=mysqli_fetch_array($result)) {
   $mapItems[] = $row;
}
print_r($mapItems);

这里的问题是,您将所有元素添加到同一个索引中,例如,您试图填充分割的框
数组
,并且总是将您的衣服放在同一个框中,而其他的则是空的。@HassanAhmed是的,我想将我的底部代码设置为与上面的代码类似。我可能在这方面有问题。这里的问题是,您将所有元素添加到同一个索引中,例如,您试图填充分割的框
数组
,并且总是将您的衣服放在同一个框中,而其他的则是空的。@HassanAhmed是的,我想将我的底部代码设置为与上面的代码类似。我可能在这方面有问题。谢谢,我已经试过你的代码了。但是引脚坐标不在图像上,如图所示=>坐标在loc_x和loc_y上。我想让我的代码和上面的代码完全一样,但是数据是从数据库读取的。谢谢,我已经尝试了你的代码。但是引脚坐标不在图像上,如图所示=>坐标在loc_x和loc_y上。我想让我的代码和上面的代码完全一样,但是数据是从数据库读取的。谢谢,我已经尝试了你的代码。但同样,引脚坐标不在图像上,如图所示=>您可以发布打印吗;数组?它显示如下数组([0]=>array([1]=>1[]=>322.6999969482422)[1]=>array([1]=>2[]=>380.6999969482422])您必须在子数组中获取id、title、xcoord、ycoord等键。这些在哪里?foreach!!但这里是while循环。不管怎样,你能展示一下你的foreach()代码吗?谢谢,我已经试过你的代码了。但同样,引脚坐标不在图像上,如图所示=>您可以发布打印吗;数组?它显示如下数组([0]=>array([1]=>1[]=>322.6999969482422)[1]=>array([1]=>2[]=>380.6999969482422])您必须在子数组中获取id、title、xcoord、ycoord等键。这些在哪里?foreach!!但这里是while循环。不管怎样,您能展示一下您的foreach()代码吗?