首页 > 解决方案 > 如何从数组中获取具有确切 ID 的表中的产品?

问题描述

我有一个包含产品的 sql 表,但我不知道如何使用带有 id 的数组检索多个产品

我知道如何检索所有这些产品,并且只有一个使用 id

JSON 与来自 sql 的所有产品

function loadGoods(){
    $conn = connect(); 
    $sql = "SELECT * FROM PRODUCTS";
    $result = mysqli_query($conn, $sql);

    if (mysqli_num_rows($result) > 0) {
        $out = array();
        // output data of each row
        while($row = mysqli_fetch_assoc($result)) {
            $out[$row["id"]] = $row;
        }
        echo json_encode($out);

    } else {
        echo 0;
    }
    mysqli_close($conn);
}

JSON 与一种产品使用其在 js 文件中从散列接收的 id

function loadSingleGoods(){
    $id = $_POST['id'];
    $conn = connect(); 
    $sql = "SELECT * FROM PRODUCTS WHERE id='$id'";
    $result = mysqli_query($conn, $sql);

    if (mysqli_num_rows($result) > 0) {
        $row = mysqli_fetch_assoc($result);
        echo json_encode($row);

    } else {
        echo 0;
    }
}

这两个片段都在工作,现在我有带有 id 的数组,但我不知道如何从 JSON 文件中的 sql 只检索它们的属性。

我有像这样 ["6", "7", "27"] 的 id 数组,我需要从 sql PRODUCTS 中仅检索具有这些 id 的项目。据我了解,我必须对这条线做点什么

 $sql = "SELECT * FROM PRODUCTS WHERE id='$id'"; 

我试过这样的代码

 $sql = "SELECT * FROM PRODUCTS WHERE in_array("id", $ids, TRUE); 

但它没有用

标签: javascriptphpmysql

解决方案


如果您也向我们展示您的 JavaScript 将会很有帮助,但假设您将 的输出输入json_encode()到单个变量中,您可以像这样访问每个产品:

console.log(json_variable[0]);

那应该给你第一个“行”。要访问特定单元格,请尝试以下操作:

console.log(json_variable[0]['column_name']);

要通过所有这些,请尝试使用 jQuery 的each()

$.each( json_variable, function( id, column_name) {
  console.log( id + ": " + column_name);
});

推荐阅读