2012-08-14 11 views
5

を返します。配列は重複値で返されます。mysql_fetch_arrayはmysql_fetch_arrayを実行するたびに重複データ

Array 
(
    [0] => 1 
    [row_id] => 1 
    [1] => some text 
    [first_field] => some text 
    [2] => some text 
    [second_field] => some text 
} 

が、私は、配列内の単一の結果をしたい、私は

mysql_fetch_array($data, MYSQL_ASSOC); 

を使用して試してみました。しかし、これは違いはありません。

+0

inb4、PDOまたはmysqli –

+0

クエリとテーブル構造を表示します。 – Jocelyn

+1

mysql拡張をもう使用しないでください! PDOまたはMySQLiを使用する方が良いです。 – ComFreek

答えて

12

mysql_fetch_array()の機能です。 "重複"を持たずに連想配列しか持たない場合は、代わりにmysql_fetch_assoc()を使用してください。

例:manualから

while ($row = mysql_fetch_assoc($data)) { ... } 
+3

'mysql_fetch_array($ data、MYSQL_ASSOC);'はmysql_fetch_assocとまったく同じことをします。 – Jocelyn

+0

@Jocelyn私はそれを認識しています - しかし、MYSQL_ASSOCを使用する方法はありませんが、[manual](http://php.net/manual/en/function .mysql-fetch-array.php)。 – newfurniturey

+0

@ mk_89私は 'mysql_fetch_array($ data、MYSQL_ASSOC)'でテストしましたが、複製することはできません(つまり、どのように動作するのか)。なぜあなたのケースで失敗するのか答えられません。 'mysql_fetch_assoc()'を使って試して、それが問題を解決するかどうか確認してください。 – newfurniturey

0

はもう行がない場合に取得された行に対応する、またはFALSE 文字列の配列を返します。 返される配列のタイプは、result_typeの定義方法に応じて に依存します。 MYSQL_BOTH(デフォルト)を使用すると、 は連想配列と数値添字の両方の配列を取得します。 MYSQL_ASSOCを使用すると、mysql_fetch_assoc()が として機能します)、MYSQL_NUMを使用すると、番号インデックス( mysql_fetch_row()が機能します)だけが取得されます。

つまり、MYSQL_BOTHがデフォルトであるため、両方が戻ってきます。連想配列または数値配列を取得する代わりに、MYSQL_ASSOCまたはMYSQL_NUMを指定することができます。代わりにmysql_fetch_assoc()を使用して、連想配列のみを返すこともできます。数値配列

+0

OPは既にMYSQL_ASSOCを試しました。 – Jocelyn

1

使用mysql_fetch_assoc()は連想キー(クエリで指定されたフィールド名)および整数位置のキーの両方を含む配列を返す(つまり、0である最初のフィールド、1 、2番目など)。これは、どちらの方法でもデータにアクセスする際の便宜のためです。

mysql_fetch_assoc()以上を使用する必要がある場合は、mysqli関数を使用してください。ここでは誰もが古いmysql_ *関数を使用しています。

+0

mysql_fetch_array($ data、MYSQL_ASSOC);はmysql_fetch_assocとまったく同じ働きをします。 – Jocelyn

0

mysql_fetch_array()ためassocitiveアレイ、又はは、mysql_fetch_rowため

+0

mysql_fetch_array($ data、MYSQL_ASSOC);はmysql_fetch_assocとまったく同じことをします。 – Jocelyn

+0

@Jocelynはいそうです。古いバージョンのmysql_ *関数の使用に精通していたほとんどの開発者は、通常mysql_fetch_assocを使用し、関数呼び出しに適切なフラグを設定することについて心配する必要がないため、downvoteについてはわかりません。 –

3

mysql_fetch_arrayは、クエリ実行に対する応答として返される結果セットを、連想配列と数値配列の両方として返します。 連想配列として結果セットを返すには、mysql_fetch_assoc関数を使用する必要があります。 結果セットを数値配列として返すには、mysql_fetch_row関数を使用する必要があります。

0

mysqli_fetch_array($result, MYSQL_ASSOC)これは、について上に示唆したように私にとってはうまくいきました。PHP5.5では廃止されました。

関連する問題