3

5列と複数行のデータベースがあります。最初の3行をフェッチして、それらを配列としてエコーしたいと思います。これまでのところ、最初の行しか取得できません(PHPとmysqlは初めてです)。これまでの私のPHPは次のとおりです。

//==== FETCH DATA
$result = mysql_query("SELECT * FROM $tableName");
$array = mysql_fetch_row($result);    

//==== ECHO AS JSON
echo json_encode($array);

助けていただければ幸いです。

4

5 に答える 5

13

結果をループする必要があります。 mysql_fetch_row一度に1つずつ取得します。

http://php.net/manual/en/function.mysql-fetch-row.php

コードは次のようになります。

$jsonData = array();
while ($array = mysql_fetch_row($result)) {
    $jsonData[] = $array;
}
echo json_encode($jsonData);
//json_encode()

コメントに記載されているように、mysql拡張機能はPHP 5.5で非推奨になり、mysqliまたはPDOを使用する必要がありますmysqli_fetch_row上記のコード に置き換えるだけです。http://www.php.net/manual/en/mysqli-result.fetch-row.php

于 2013-03-19T22:08:02.963 に答える
2

PHPドキュメント によるとmysql_fetch_row(非推奨であり、mysqliまたはPDOを使用する必要があることを除いて)

フェッチされた行に対応する数値配列を返し、内部データポインタを前方に移動します。

したがって、たとえば、すべての行をフェッチするにはwhileループが必要です。

$rows = array();

while ($row = mysql_fetch_row($result)) {
    $rows[] = $row;
}

echo json_encode($rows);

3行だけをフェッチする方法はあなたに任せます:)

于 2013-03-19T22:11:24.403 に答える
2

PHP 5.5.7でODBCデータベース接続を検索しているときに、これが好きです。結果はJSON形式になります。

$conn = odbc_connect($odbc_name, 'user', 'pass');
$result = odbc_exec($conn, $sql_query);

フィールドの編集を可能にする結果のフェッチ:

while( $row = odbc_fetch_array($result) ) { 
     $json['field_1'] = $row['field_1'];
     $json['field_2'] = $row['field_2'];
     $json['field_3'] = $row['field_1'] + $row['field_2'];

     array_push($response, $json); 
  }

または、何も変更したくない場合は、次のように簡略化できます。

while ($array = odbc_fetch_array($result)) { $response[] = $array; }

結果をJSON形式で返したい場合はどうすればよいですか?簡単です:

echo json_encode($response, true);

mysqli_fetch_arrayのodbc_fetch_arrayを変更して、MySqlデータベースにクエリを実行できます。

于 2014-07-23T18:06:02.007 に答える
0

これをある種のループに入れる必要があります。mysql_fetch_rowは一度に1つずつ結果を返します。

例を参照してください: http ://www.php.net/manual/en/mysqli-result.fetch-row.php#example-1794

于 2013-03-19T22:07:29.340 に答える
-1

$ result = mysql_query( "SELECT * FROM $ tableName ORDER BY id LIMIT 3");

$ json = array(); while($ array = mysql_fetch_row($ result)){

$ json [] = $ array; }

echo json_encode($ json);

于 2017-12-31T14:46:51.987 に答える