Php 从具有数组的数组调用
我想使用get数组从数组中调用,但它不起作用。正确的格式化方法是什么Php 从具有数组的数组调用,php,sql,arrays,get,Php,Sql,Arrays,Get,我想使用get数组从数组中调用,但它不起作用。正确的格式化方法是什么 if(isset($_GET["category"])){ $cat = 'SELECT DISTINCT `Category` FROM `products`'; $result = $mysqli->query($cat); $i='0'; while ($row = $result->fetch_array(MYSQLI_ASSOC)){ $i++;
if(isset($_GET["category"])){
$cat = 'SELECT DISTINCT `Category` FROM `products`';
$result = $mysqli->query($cat);
$i='0';
while ($row = $result->fetch_array(MYSQLI_ASSOC)){
$i++;
$Category = $row["Category"];
$id = array($i => $Category);
}
$result->close();
$query = 'SELECT * FROM products WHERE Category="'. $id[$_GET["category"]]. '" ORDER BY Code';
}
你的问题是错误的。使用
$query = "SELECT * FROM products WHERE Category='". $id[$_GET["category"]]. "' ORDER BY Code";
orderby
子句必须在where
子句之后。看来,您在循环中犯了一个错误。如果要为数组键指定值,则需要替换以下内容:
$id = array($i => $Category);
为此:
$id[$i] = $Category;
否则,
$id
将始终是一个只有当前键值对的新数组。工作很奇怪,我使用的是php手册中的说明:在每次循环迭代中,您都创建了一个新数组,该数组替换了以前的$id
值。因此,最后只有循环最后生成的键值对。顺便说一句,您可以使用该函数来显示变量的内容。在旧版本和新版本的while循环(var_dump($id);
)之后执行此操作,您将看到差异。