![](/img/trans.png)
[英]How to select only products with ids from ids array. MongoDB
[英]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.