可能有一个非常简单的解决方案,但我就是想不出来。
我正在从wp数据库获取一些信息,绕过wp的内置类,然后将结果作为编码的JSON数据进行回应,如下所示:
$db = new PDO(\'mysql:host=localhost;dbname=dbname\', \'dbusername\', \'dbpassword\');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = \'SELECT user_login AS name, display_name AS tag, user_status AS status
FROM wp_users\';
$query = $db->query($sql);
$i = 1;
$data = array();
while($row = $query->fetch(PDO::FETCH_ASSOC)) {
$row[\'id\'] = $i;
$i++;
$data[] = $row;
}
echo json_encode($data);
这将输出以下内容:
[
{
"name": "johndoe",
"tag": "John Doe",
"status": "0",
"id": 1
},
{
"name": "janedoe",
"tag": "Jane Doe",
"status": "0",
"id": 2
}
]
但是我需要更改我正在使用的jquery插件的列表顺序。我需要“id”标记首先呈现如下:
[
{
"id": 1,
"name": "johndoe",
"tag": "John Doe",
"status": "0"
},
{
"id": 2,
"name": "janedoe",
"tag": "Jane Doe",
"status": "0"
}
]
谁能给我指一下正确的方向吗?
最合适的回答,由SO网友:webtoure 整理而成
你有很多选择,但我想最简单的就是SQL
类似这样的查询:
SELECT
0 AS id,
user_login AS name,
display_name AS tag,
user_status AS status
FROM wp_users;
您可以看到,现在我们有了所需的订单,您将在何时完成
$row[\'id\'] = $i;
分配我们将使用该职位,而不是创建新的
key => value
.
另一种解决方案利用MySQL
用户变量:
SELECT
@idx := @idx + 1 AS id,
user_login AS name,
display_name AS tag,
user_status AS status
FROM wp_users
CROSS JOIN
(SELECT @idx := 0) idx;
使用上述解决方案,您无需添加
PHP
增量机制,您将获得
id
列已按需要格式化。