簡體   English   中英

如何從表中獲取具有數組確切ID的產品?

[英]How to get products from table with exact ids from array?

我有一個包含產品的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);
}

通過哈希從js文件中接收到的帶有產品ID的JSON產品

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中僅檢索其屬性。

我有ID像這樣的數組[“ 6”,“ 7”,“ 27”],我只需要從sql PRODUCTS中檢索具有這些ID的項目。 據我了解,我必須對此行做些事情

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

我試過這樣的代碼

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

但這沒用

如果您也向我們展示了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);
});

您可以使用JSON.parse()解析json對象並訪問該對象的所有值。

var text = '{ "name":"John", "age":"39", "city":"New York"}';
JSON.parse(text, function (key, value) {  
    console.log(value); 
});

在這里,您可以將text替換為json變量。

如果您想了解有關json解析以及如何在js中訪問json變量的更多信息, 請單擊此處

您可以在執行查詢之前構建查詢:

 $sql_array=array("6", "7", "27");
 $first_item=array_values($sql_array)[0];
 $sql="SELECT * FROM `PRODUCTS` WHERE `id`='$first_item'";
 $built_query="";
 foreach ($sql_array as $k => $id) {
   if ($k < 1) continue;
   $built_query=$built_query." OR `id` = '$id'";
}
$built_query=$sql.$built_query;

echo "$built_query";

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM