Php 如何将mysql_fetch_行解析为JSON对象
我有以下代码:Php 如何将mysql_fetch_行解析为JSON对象,php,mysql,json,Php,Mysql,Json,我有以下代码: <?php include 'db.php'; $con = mysql_connect($host,$user,$pass); $dbs = mysql_select_db($databaseName, $con); $tableName = "tbl_title"; $result = mysql_query("SELECT id, fld_title FROM $tableName"); $data = array(); while ( $row = mysql
<?php
include 'db.php';
$con = mysql_connect($host,$user,$pass);
$dbs = mysql_select_db($databaseName, $con);
$tableName = "tbl_title";
$result = mysql_query("SELECT id, fld_title FROM $tableName");
$data = array();
while ( $row = mysql_fetch_row($result) )
{
//$data[] = $row;
//$data['item'][] = $row;
//$data['item'][] = $row['id'].value;
$id = $row['id'];
$fld_title = $row['fld_title'];
$data = array( "id" => $id, "fld_title" => $fld_title);
//echo $row['id'] . " " . $row['fld_title'];
//echo '<option value="'.$row->id.'">'.$row->fld_title.'</option>';
}
echo json_encode( $data );
// echo $row[0] . " " . $row[1];
?>
我试图以格式化的方式返回结果,但是,即使我从查询中获得结果,$id和$fld_title没有设置为值。我遗漏了什么?您可能希望在循环中包含以下内容:
$data[] = array( "id" => $id, "fld_title" => $fld_title);
而不是:
$data = array( "id" => $id, "fld_title" => $fld_title);
因此,每行一个数组被追加到输出数据数组中,或者只输出最后一项
$data = array();
while ( $row = mysql_fetch_row($result) )
{
$data[] = array( "id" => $row['id'] ,"fld_title" => $row['fld_title']);
}
var_dump(json_encode( $data ));
更新
通过id获取:(我猜它是独一无二的)
没有必要引用每一列
$row
已经是一个数组。我已经改为使用,因为它提供了命名列
$data = array();
while ( $row = mysql_fetch_assoc($result) )
{
$data[] = $row;
}
echo json_encode( $data );
当您可以直接从结果中提取
关联数组
时,为什么要提取行,这样您就不必进行额外的编码来格式化数据
使用
函数来获取这些值
还有一件事:fetchin行将只提供数字键,而不是关联键
现在享受;) lol fetch row只提供数值数组非关联数组将不正确
mysql\u fetch\u row
将返回数值键数组非关联。删除“lol”,因为这实际上相当粗鲁。
$data = array();
while ( $row = mysql_fetch_assoc($result) )
{
$data[] = $row;
}
echo json_encode( $data );