【问题标题】:call from an array with an array从带有数组的数组调用
【发布时间】:2012-07-02 13:55:49
【问题描述】:

我想使用 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++;
        $Category = $row["Category"];
        $id = array($i => $Category);
    }
    $result->close();
    $query = 'SELECT * FROM products WHERE Category="'. $id[$_GET["category"]]. '" ORDER BY Code';
}

【问题讨论】:

    标签: php sql arrays get


    【解决方案1】:

    看来,您在循环中犯了一个错误。如果你想给数组键赋值,你需要替换这个:

    $id = array($i => $Category);
    

    用这个:

    $id[$i] = $Category;
    

    否则$id 将始终是仅包含当前键值对的新数组。

    【讨论】:

    • 工作很奇怪,我使用的是 php 手册中的说明:function array
    • 在每次循环迭代中,您都创建了一个新数组,它替换了之前的 $id 值。所以最后你只有循环最后生成的键值对。顺便说一句,您可以使用var_dump 函数来显示变量的内容。在新旧版本的 while 循环 (var_dump($id);) 之后执行此操作,您将看到不同之处。
    【解决方案2】:

    您的查询是错误的。使用

    $query = "SELECT * FROM products WHERE Category='". $id[$_GET["category"]]. "' ORDER BY Code";
    

    order by 子句必须在 where 子句之后。

    【讨论】:

      猜你喜欢
      • 2012-02-26
      • 2012-04-08
      • 1970-01-01
      • 1970-01-01
      • 2012-07-24
      • 2013-07-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多