【问题标题】:PHP foreach loop giving only 1 resultPHP foreach 循环仅给出 1 个结果
【发布时间】:2014-02-05 11:17:52
【问题描述】:

我有这个数组:

$cust = xtc_db_query("SELECT customers_id FROM orders");
$customers = xtc_db_fetch_array($cust);

当我尝试显示每条记录时,我只得到第一条:

foreach ($customers as $v) {
    echo "ID: $v.\n <br>";
}

我尝试手动设置数组,然后它工作正常:

$customers = array(1, 2, 3, 17);

【问题讨论】:

  • 需要知道您用于执行数据库提取的函数,但最初尝试使用 print_r($customers);检查它是否带回了一个数组。我希望该类将返回一行(因此是一个包含一个值的数组)或整个记录集作为数组数组。

标签: php mysql arrays foreach


【解决方案1】:

您的$customers 数组将只包含一个值(查询的最后一个结果)。您需要使用 while 循环:

$cust = xtc_db_query("SELECT customers_id FROM orders");
while($customers = xtc_db_fetch_array($cust))
{
    // Use $customers here.
}

【讨论】:

    【解决方案2】:
    $cust = xtc_db_query("SELECT customers_id FROM orders");
    while($customers = xtc_db_fetch_array($cust)){
       echo "ID: $customers[customers_id].\n <br>";
    }
    

    【讨论】:

    • echo "ID: $customers.\n
      ";给我 ID:数组。我不得不将其更改为 echo "ID: $customers[customers_id].\n
      ";。谢谢你的回答,我得到了它的工作
    【解决方案3】:

    xtc_db_fetch_array 将在每次迭代中返回一条记录。

    要获取所有记录,您必须将 xtc_db_fetch_array($cust) 放入如下所示的 while 循环中。

    $cust = xtc_db_query("SELECT customers_id FROM orders");
    while($customers = xtc_db_fetch_array($cust)){
        print_r($customers);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-21
      • 1970-01-01
      • 2017-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-26
      • 2015-09-18
      相关资源
      最近更新 更多