我有以下几行......
$getmodels = array(
array('value' => 1, 'text' => 'Services'),
array('value' => 2, 'text' => 'Customers'),
array('value' => 3, 'text' => 'Operators'),
array('value' => 4, 'text' => 'Supports'),
array('value' => 5, 'text' => 'Guests'),
);
echo json_encode($getmodels);
现在我尝试通过表格及其行内容复制结果..
$db_connection = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);
$model = $db_connection->query("SELECT id, name FROM vhclmodel ORDER BY name;");
$getmodels = array();
while ($row = mysql_fetch_assoc($model)) {
$getmodels[] = array('value' => $row['id'], 'text' => $row['name']);
}
echo json_encode($getmodels);
我得不到同样的结果,请帮助..还是一个新手。 TIA ...
答案 0 :(得分:2)
您正在将msqli
与已弃用的mysql
功能混合使用。使用$model->fetch_assoc()
代替mysql_fetch_assoc($model)
。
所以试试这个:
$getmodels = array();
while ($row = $model->fetch_assoc()) {
$getmodels[] = array('value' => $row['id'], 'text' => $row['name']);
}
echo json_encode($getmodels);
请参阅http://us2.php.net/manual/en/mysqli-result.fetch-assoc.php
正如Mark在评论中指出的那样,您的手动数组按ID排序,而您的数据库查询按名称排序。如果这很重要,只需更改您的查询:
SELECT id, name FROM vhclmodel ORDER BY id