Php 修改并重命名MySQL查询中的JSON元素
我想使用数据库中的一些随机字段和json对它们进行编码 如何更改名称-q;pic-p;var-v并从数组中删除ranom id并添加增量idPhp 修改并重命名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 }, {
[
{
"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:),那么我如何删除{“数据”:
和结尾}
?