【问题标题】:Mysql Fetch Array ForeachMysql 获取数组 Foreach
【发布时间】:2013-06-06 13:43:33
【问题描述】:

我正在尝试使用 foreach 循环设置值以填充表,由于某种原因,我的数组在值内显示为空。但是当我 var dump $result_list[] 它显示产品数组时,我做错了吗?谢谢

$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 } } 

【问题讨论】:

  • 不是 $row->id 而是 $row['id']
  • 不要使用已弃用的mysql_* 函数。
  • The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead。反正。你需要 foreach($result_list[] as $row。你忘记了 []。

标签: php mysql arrays


【解决方案1】:
foreach($result_list as $row) {

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

试试这个。

【讨论】:

    【解决方案2】:

    要回答您的问题,您将返回作为数组而不是对象的行,但您仍然尝试将其作为对象 $row->id 访问。请改用$row['id']$row['product']$row['price']

    不要使用 mysql_* 函数,而是使用 PDO 或 MySQLi,例如看看 PDO 是多么简单:

    $productitems = $pdo->fetchAll(\PDO::FETCH_ASSOC); and then use foreach
    

    【讨论】:

      【解决方案3】:

      改成,

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

      注意: Please, don't use mysql_* functions in new code。它们不再维护and are officially deprecated。看到red box?改为了解 prepared statements,并使用 PDOMySQLi - this article 将帮助您决定哪个。如果你选择 PDO,here is a good tutorial

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-08-09
        • 2011-11-16
        • 2011-02-11
        • 2012-08-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-07-27
        相关资源
        最近更新 更多