2

私は次のコードを持っています:

<?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が値に設定されません。私は何が欠けていますか?

4

4 に答える 4

6

各列を参照する必要はありません。$rowはすでに配列です。mysql_fetch_assocを使用するように変更しました。これは、名前付きの列を提供するためです。

$data = array();
while ( $row = mysql_fetch_assoc($result) )
{
    $data[] = $row;
}
echo json_encode( $data );
于 2012-06-04T07:35:16.297 に答える
4
$data = array();
while ( $row = mysql_fetch_row($result) )
{
    $data[] = array( "id" => $row['id'] ,"fld_title" => $row['fld_title']);
}
var_dump(json_encode( $data ));

更新
IDで取得:(私はそれがユニークだと思います)

 $data = array();
    while ( $row = mysql_fetch_array($result) )
    {
        $data[$row['id']] = array( "id" => $row['id'] ,"fld_title" => $row['fld_title']);
    }
    var_dump(json_encode( $data ));
于 2012-06-04T07:32:12.073 に答える
0

おそらくループ内でこれが必要です。

$data[] = array( "id" => $id, "fld_title" => $fld_title);

それ以外の:

$data = array( "id" => $id, "fld_title" => $fld_title);

行ごとに1つの配列が出力データ配列に追加されるようにするか、最後の項目のみを出力します。

于 2012-06-04T07:31:52.633 に答える
-1

associative arrayデータをフォーマットするために余分なコーディングを行う必要がないように、結果から直接フェッチできるのに行をフェッチする理由。

使用する

これらの値を取得するためのmysql_fetch_assoc関数。

そしてもう1つ:fetchin行は、連想キーではなく数値キーのみを提供します。

そして今、お楽しみください;)

于 2012-06-04T07:37:17.910 に答える