Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用数组中的精确ID从表中获取产品?_Javascript_Php_Mysql - Fatal编程技术网

Javascript 如何使用数组中的精确ID从表中获取产品?

Javascript 如何使用数组中的精确ID从表中获取产品?,javascript,php,mysql,Javascript,Php,Mysql,我有一个包含产品的sql表,我不知道如何使用带有ID的数组检索多个产品 我知道如何检索所有这些产品,只有一个使用id JSON与来自sql的所有产品 function loadGoods(){ $conn = connect(); $sql = "SELECT * FROM PRODUCTS"; $result = mysqli_query($conn, $sql); if (mysqli_num_rows($result) > 0) {

我有一个包含产品的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文件中从hash接收的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中只检索它们的属性

我有一个ID为[“6”、“7”、“27”]的数组,我只需要从sql产品中检索具有这些ID的项。据我所知,我必须对这条线做点什么

 $sql = "SELECT * FROM PRODUCTS WHERE id='$id'"; 
我试过这样的代码

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

但是它不起作用

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

console.log(json_变量[0])

这应该给你第一排。要访问特定单元格,请尝试以下操作:

console.log(json_变量[0]['column_name'])

要浏览所有这些内容,请尝试jQuery:


您可以使用
json.parse()
解析json对象,并访问该对象的所有值

var text = '{ "name":"John", "age":"39", "city":"New York"}';
JSON.parse(text, function (key, value) {  
    console.log(value); 
});
在这里,您可以用
json
变量替换
text


如果您想了解更多关于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";
$sql_array=array(“6”、“7”、“27”);
$first_item=数组值($sql_数组)[0];
$sql=“从`PRODUCTS`中选择*,其中`id`='$first\u item';
$build_query=“”;
foreach($k=>$id的sql_数组){
如果($k<1)继续;
$build\u query=$build\u query.”或'id`='id';
}
$build\u query=$sql.$build\u query;
echo“$build_query”;

使用此链接了解更多说明警告:在实现查询之前,请始终通过console、workbench或SQL Studio for transact-SQL测试查询。这将首先确保您的查询工作正常。然后将其转换为正在使用的语言。抱歉,但据我所知,您写的是如何从json检索数据,我需要从json中的sql接收数据。我还没有JSON。如果执行
var\u转储($out),我只有ID为[“6”、“7”、“27”]的数组;退出
,在
while()
循环之后,您得到了什么?数组(37){↵ [1]=>↵ 阵列(7){↵ [“id”]=>↵ 字符串(1)“1”↵ [“名称”]=>↵ 串(16)“Пчаааааа”↵ [“img”]=>↵ 字符串(19)“img/other/hands.jpg”↵ [“价格”]=>↵ 字符串(3)“550”↵ [“类别”]=>↵ 字符串(5)“其他”↵ ...etcGreat,这完全符合预期。在JS方面,您是如何“接收”PHP的输出的?也许您可以共享您的JS代码。实际上,我是在JS中获得的,添加此命令后,在那里出现错误SyntaxError:JSON中的意外标记a位于位置0我的JS非常大且凌乱,因此我不知道在这里显示什么警告:
 $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";