Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/266.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.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
Php 修改并重命名MySQL查询中的JSON元素_Php_Mysql_Json - Fatal编程技术网

Php 修改并重命名MySQL查询中的JSON元素

Php 修改并重命名MySQL查询中的JSON元素,php,mysql,json,Php,Mysql,Json,我想使用数据库中的一些随机字段和json对它们进行编码 如何更改名称-q;pic-p;var-v并从数组中删除ranom id并添加增量id [ { "name": "some text", "a": "var1", "b": "var2", "c": "var3", "pic": "1.jpg", "var": "a", "id": 375 }, {

我想使用数据库中的一些随机字段和json对它们进行编码

如何更改名称-q;pic-p;var-v并从数组中删除ranom id并添加增量id

[
    {
        "name": "some text",
        "a": "var1",
        "b": "var2",
        "c": "var3",
        "pic": "1.jpg",
        "var": "a",
        "id": 375
    },
    {
        "q": "another question",
        "a": "var 2.1",
        "b": "var 2.1",
        "c": "var 2.1",
        "var": "a",
        "id": 28
    }
]
对此

[
    {
        "q": "some text",
        "a": "var1",
        "b": "var2",
        "c": "var3",
        "p": "1.jpg",
        "v": "a",
        "id": 1
    },
    {
        "q": "another question",
        "a": "var 2.1",
        "b": "var 2.1",
        "c": "var 2.1",
        "v": "a",
        "id": 2
    }
]

您可以在需要的特定列上使用别名。在获取这些行时添加一个简单计数器,并在
id
索引中分配它们。最后,编码:

由于没有获取代码,这只是一个粗略的示例/想法:

$db = new PDO('mysql:host=localhost;dbname=database name', 'username', 'password'); // connect
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = '
    SELECT 
        name AS q,
        a, b, c,
        pic AS p,
        var AS v,
        id
    FROM table_name
'; // add alias

$query = $db->query($sql);
$i = 1; // simple counter
$data['data'] = array();
while($row = $query->fetch(PDO::FETCH_ASSOC)) { // fetch
    $row['id'] = $i; // assign counter
    $i++;
    $data['data'][] = $row; // push
}
// encode
echo json_encode($data);

您是通过查询从数据库中提取这个吗?如果您使用PHP和json_编码来提取数据,我很确定您可以在查询中使用别名,那么别名将用作数组键。只需在所选字段中使用一些别名,然后使用一些计数器重新分配id,然后进行编码。是的,我从数据库中提取数据,然后在将其编码为json之前执行此操作。这将更容易操纵。请给我们看一些代码这根本不是一个JSON问题。正如最后一位评论员所说,在PHP中迭代拉取的记录以创建所需的输出结构,然后
json_encode
并将其输出。
致命错误:在这一行
while($row=$query->fetch(PDO::fetch_ASSOC))上调用布尔中的成员函数fetch(){//fetch
在连接下面添加这个
$db->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
这只是一些伪代码,我不认为查询有错,谢谢。这是一个查询错误,我输入错误。代码工作正常,但它显示的是
{“数据”:[
而不是
数据=[
@m3tsys如果你有
数据=[
,它不再是有效的json:),那么我如何删除
{“数据”:
和结尾
}