1

foreach ループを使用して値を設定し、テーブルにデータを入力しようとしています。何らかの理由で、配列が値内に null を表示しています。しかし、$result_list[] を var ダンプすると、製品の配列が表示されます。これは間違っていますか? ありがとう

$result = mysql_query("SELECT id, product, price FROM products");


$result_list = array();
while($row = mysql_fetch_array($result)) {
   $result_list[] = $row;
}

foreach($result_list as $row) {

    $productitems[] = array(
        'id' => $row->id,
        'product'  => $row->product,
        'price'  => $row->price
    );              
}

var_dump($productitems);


array(2) { [0]=> array(3) { ["id"]=> NULL ["product"]=> NULL ["price"]=> NULL } [1]=> array(3) { ["id"]=> NULL ["product"]=> NULL ["price"]=> NULL } } 
4

3 に答える 3

6
foreach($result_list as $row) {

    $productitems[] = array(
        'id' => $row['id'],
        'product'  => $row['product'],
        'price'  => $row['price']
    );              
}

Try this.

于 2013-06-06T13:46:05.483 に答える
1

Change it to,

foreach($result_list as $row) {
    $productitems[] = array(
       'id' => $row['id'],
       'product'  => $row['product'],
       'price'  => $row['price']
    );
}

Note: Please, don't use mysql_* functions in new code. They are no longer maintained and are officially deprecated. See the red box? Learn about prepared statements instead, and use PDO, or MySQLi - this article will help you decide which. If you choose PDO, here is a good tutorial.

于 2013-06-06T13:45:48.087 に答える
1

あなたの質問に答えるために、オブジェクトではなく配列として行を取得していますが、それでもオブジェクトとしてアクセスしようとしています$row->id。代わりに、、、を使用し$row['id']ます。$row['product']$row['price']

mysql_* 関数を使用しないで、代わりに PDO または MySQLi を使用してください。

$productitems = $pdo->fetchAll(\PDO::FETCH_ASSOC); and then use foreach
于 2013-06-06T13:46:13.747 に答える