繁体   English   中英

使用 php 从 SQL 查询构建一个数组的数组

[英]build an array of an array from SQL query with php

我在 PHP 中有以下工作数组:

$explore1 = array
(
array("a.html", "A"),
array("b.html", "B"),
array("c","C")
);        
$arrlength = count($explore1);
for($x = 0; $x < $arrlength; $x++) {
  echo '<li><a href="'.$explore1[$x][0].'">'.$explore1[$x][1].'</a></li>';
}  }

我想从 SQL 填充 explore1 数组。 如果我只是像下面那样更改代码,它会出现错误,但我不知道该怎么做?

$sql = 'SELECT url, name FROM explore_items WHERE menuID="item1"';
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    // output data of each row
    $explore1 = array  //IT DOESN'T LIKE THIS LINE
(
while($row = $result->fetch_assoc()) {
    // BUILD SAME LINES AS ABOVE WITH ECHO
    echo "array('" . $row["url"]. ", '" . $row["name"]. "'),";
}
);  

有人可以帮忙吗?

要么你根本不需要$explore1

$sql = 'SELECT url, name FROM explore_items WHERE menuID="item1"';
$result = $conn->query($sql);

if ($result->num_rows > 0) {
  while($row = $result->fetch_assoc()) {
    //echo "array('" . $row["url"]. ", '" . $row["name"]. "'),";
    echo '<li><a href="'.$row["url"].'">'.$row["name"].'</a></li>';
  }
} 

或者如果你需要你可以fetch_all()

$sql = 'SELECT url, name FROM explore_items WHERE menuID="item1"';
$result = $conn->query($sql);

if ($result->num_rows > 0) {
  $explore1=$result->fetch_all(MYSQLI_ASSOC);
  foreach($explore1 as $row ) {
    //echo "array('" . $row["url"]. ", '" . $row["name"]. "'),";
    echo '<li><a href="'.$row["url"].'">'.$row["name"].'</a></li>';
  }
} 

请学习一些php基础知识。 定义一个数组数组类似于:

$explore1 = array();
while($row = $result->fetch_assoc()) {
    $explore1[] = array($row["url"], $row["name"]);
}

您必须在循环内填充数组:

while($row = $result->fetch_assoc()) {
    $explore1[$row["url"]] = $row["name"];
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM