首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何过滤url上的json?

如何过滤url上的json?
EN

Stack Overflow用户
提问于 2016-08-15 01:30:17
回答 2查看 2.2K关注 0票数 0

如何从特定字段的数据库中筛选json数据?

这是我的儿子

代码语言:javascript
复制
[
    {
        "Car_No":"25",
        "Car_Model":"car1",
        "Car_Type":"car2",
        "Capacity":"12",
        "Image":"carkila.esy.es\/upload\/20160811031546.png",
        "fuelType":"Diesel",
        "carPlatenuNumber":"qwe - 123",
        "carStatus":null,
        "owner":"owner"
    },
    {
        "Car_No":"24",
        "Car_Model":"car",
        "Car_Type":"car2",
        "Capacity":"123",
        "Image":"carkila.esy.es\/upload\/20160808114541.png",
        "fuelType":"Biofuels (biodiesel and bioethanol)",
        "carPlatenuNumber":"qwe - 123",
        "carStatus":null,
        "owner":"owner"
    },
    {
        "Car_No":"23",
        "Car_Model":"fortuner",
        "Car_Type":"suv",
        "Capacity":"56",
        "Image":"carkila.esy.es\/upload\/20160805104115.png",
        "fuelType":"Super unleaded petrol",
        "carPlatenuNumber":"xxx888",
        "carStatus":null,
        "owner":"owner"
    },
    {
        "Car_No":"22",
        "Car_Model":"seannnn",
        "Car_Type":"seanyboy",
        "Capacity":"12",
        "Image":"carkila.esy.es\/upload\/20160805091944.png",
        "fuelType":"Biofuels (biodiesel and bioethanol)",
        "carPlatenuNumber":"hjk123",
        "carStatus":null,
        "owner":"sean"
    },
    {
        "Car_No":"21",
        "Car_Model":"cars",
        "Car_Type":"car1",
        "Capacity":"12",
        "Image":"carkila.esy.es\/upload\/20160805091429.png",
        "fuelType":"Premium unleaded",
        "carPlatenuNumber":"qwe321",
        "carStatus":null,
        "owner":"owner"
    },
    {
        "Car_No":"20",
        "Car_Model":"car",
        "Car_Type":"car1",
        "Capacity":"123",
        "Image":"https:\/\/www.enterprise.ca\/content\/dam\/global-vehicle-images\/cars\/CHRY_200_2015.png",
        "fuelType":"Biofuels (biodiesel and bioethanol)",
        "carPlatenuNumber":"qwe123",
        "carStatus":null,
        "owner":"owner"
    }
]

我想要它像http://carkila.esy.es/user.php?owner=sean,它将过滤所有的所有者,有肖恩在其中。

这是我的json转换代码。

代码语言:javascript
复制
<?PHP
include_once("connection.php");

session_start();

$query = "SELECT * FROM tbl_cars ORDER BY Car_No DESC"; 

$result = mysqli_query($conn, $query);

while ($row = mysqli_fetch_assoc($result)) {
    $data[] = $row;
}
echo json_encode($data);

?>

谢谢各位:)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-08-15 05:29:41

代码语言:javascript
复制
<?PHP
include_once("connection.php");

session_start();

$where = ''
if (isset($_GET['owner'])){
  $where = " WHERE owner like '%".addslashes($_GET['owner'])."%'";
}
$query = "SELECT * FROM tbl_cars ".$where." ORDER BY Car_No DESC"; 

$result = mysqli_query($conn, $query);

while ($row = mysqli_fetch_assoc($result)) {
    $data[] = $row;
}
echo json_encode($data);

?>
票数 2
EN

Stack Overflow用户

发布于 2016-08-15 05:41:37

如果您试图使用包含owner的查询字符串根据对JSON转换脚本的请求对dataset进行筛选,我建议使用数据库过滤结果集,而不是在数据被迭代之后过滤掉它。

user.php?owner=sean

代码语言:javascript
复制
<?php
require_once __DIR__ . '/connection.php';

session_start();
$owner = isset($_GET['owner']) ? $_GET['owner'] : null;
$query = 'SELECT * FROM tbl_cars';
if (isset($owner)) {
   $query .=  ' WHERE owner = ?';
}
$query .= ' ORDER BY Car_No DESC';
$stmt = mysqli_prepare($conn, $query); 
if (isset($owner)) {
    mysqli_stmt_bind_param($stmt, 's', $owner); 
}
mysqli_stmt_execute($stmt);
$data = array();
if ($result = mysqli_stmt_get_result($stmt)) {
    while ($row = mysqli_fetch_assoc($result)) {
        $data[] = $row;
    }
}
echo json_encode($data);

如果要查找包含单词sean的所有者,请用以下方式替换WHERE语句。

代码语言:javascript
复制
$query .= ' WHERE owner LIKE ?';

并将mysqli_stmt_bind_param替换为

代码语言:javascript
复制
mysqli_stmt_bind_param($stmt, 's', '%' . $owner . '%');

结果:

代码语言:javascript
复制
[
    {
        "Car_No":"22",
        "Car_Model":"seannnn",
        "Car_Type":"seanyboy",
        "Capacity":"12",
        "Image":"carkila.esy.es\/upload\/20160805091944.png",
        "fuelType":"Biofuels (biodiesel and bioethanol)",
        "carPlatenuNumber":"hjk123",
        "carStatus":null,
        "owner":"sean"
    }
]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38948175

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档