0

次のような配列にmysqlクエリを保存しようとしています:

$arr = array ( "field1"=>"value" , "field2"=>"value" , "field3"=>"value" , ... );

私はこれを試しましたが、必要なように機能しません:

$row_selectProduct = array();
$sResult = $db->query( 'SELECT * FROM tbl' )    

while ( $aRow = $sResult->fetch_assoc() )
{
        $sInfo = $sResult->fetch_field();
        // General output
        $row_selectProduct[ $sInfo->name ] = $aRow;
}

$sResult->close();

助けてくれてありがとう

EDIT: 誤解してすみません...データベースのフィールド名でキーに名前を付けたいと思います。私はこれを再現しようとします:

$result = array();

while ($row_selectProduct = mysql_fetch_assoc($selectProduct));
{

    $row_array= array();

$row_array['field_name1_In_DB'] = $row_selectProduct['field_name1_In_DB'];
$row_array['field_name2_In_DB'] = $row_selectProduct['field_name2_In_DB'];
$row_array['field_name3_In_DB'] = $row_selectProduct['field_name3_In_DB'];
$row_array['field_name4_In_DB'] = $row_selectProduct['field_name4_In_DB'];
$row_array['field_name5_In_DB'] = $row_selectProduct['field_name5_In_DB'];
...

array_push($result,$row_array);

};
4

2 に答える 2

0
while ( $aRow = $sResult->fetch_assoc() )
{
        foreach($aRow as $fieldname => $fieldvalue) {
             $row_selectProduct[$fieldname] = $fieldvalue;   
        }

}

ただし、 $row_selectedProduct をすべてのレコードで上書きすると、最後の変数には最後のレコードのみが保存されます

すべての結果を 1 つの配列に収めたい場合は、次のようにする必要があります。

$results = array();
while ( $aRow = $sResult->fetch_assoc() )
{
        $results[] = $aRow;

}

結果が1つしかないことがわかっている場合は、次のことだけが必要です。

$result = $sResult->fetch_assoc();
于 2013-05-23T16:16:41.533 に答える