Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.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_fetch_行解析为JSON对象_Php_Mysql_Json - Fatal编程技术网

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 );