![](/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.