の既定の引数を使用mysql_fetch_array()
すると、SQL クエリは各行のインデックス付き配列エントリと連想配列エントリの両方を返します。
mysql_*
まず、スタイル関数から離れることを強くお勧めします。この一連のツールは、しばらくの間廃止されており、更新されていません。理由をより詳細に説明しているオンラインのリソースと、いくつかの優れた代替手段があります。ああ、先に進みましょう。
次に、(この関数を使用する必要がある場合) 2 番目の引数としてMYSQL_ASSOC
(連想配列) またはMYSQL_NUM
(番号付き配列) のいずれかを関数に渡すことにより、いずれかの戻り値形式メソッドを使用することをお勧めします。
たとえば、次のMYSQL_ASSOC
ようになります。
Array
(
[title] => bbbbbb
[id] => 86
[subject] => rewr
[date_time] => 0000-00-00
[username] => admin
)
一般に、クエリ内で列を選択した順序に依存する必要がないため、番号付き配列よりも優先されます。
たとえば、次のMYSQL_NUM
ようになります。
Array (
[0] =>aaaaaaa
[1] => 86
[2] => rewr
[3] => 0000-00-00
[4] => admin
)
右。while ループで配列を編集するには、次の行を追加するだけです。
// Using MYSQL_ASSOC
while ( $aRow = mysql_fetch_array( $rResult , MYSQL_ASSOC ) ) {
$aRow['date_time'] = '2010-01-01';
$aRow['status'] = 'edited'; // Whatever key this column should be needs to be added instead of 'status'
$output['aaData'][] = $aRow;
}
または:
// Using MYSQL_NUM
while ( $aRow = mysql_fetch_array( $rResult , MYSQL_NUM ) ) {
$aRow[3] = '2010-01-01';
$aRow[6] = 'edited';
$output['aaData'][] = $aRow;
}
それでも両方に固執したい場合は、両方の例の行を使用する必要があります。
// Using DEFAULT / MYSQL_BOTH
while ( $aRow = mysql_fetch_array( $rResult ) ) {
$aRow['date_time'] = '2010-01-01';
$aRow[3] = '2010-01-01';
$aRow['status'] = 'edited'; // Whatever key this column should be needs to be added instead of 'status'
$aRow[6] = 'edited';
$output['aaData'][] = $aRow;
}