首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建字段数组,然后遍历PHP中的set

创建字段数组,然后遍历PHP中的set
EN

Stack Overflow用户
提问于 2017-06-28 19:12:31
回答 2查看 28关注 0票数 1

我想简化我的应用程序构建查询和循环结果的方式。大多数实际代码都能工作,但PHP并不显示从我的查询中获取的所有结果。

序言:前面的示例代码,不要在生产中使用.

首先,我构建查询。

代码语言:javascript
复制
$arr_fields = array('color', 'number', 'size');
$select_fields = implode(', ', $arr_fields);
$q = "SELECT $select_fields FROM supplychain";

现在我执行查询,然后循环遍历结果集。

专业提示:不要将这段代码用于任何重要的事情--它只是为了演示目的。

代码语言:javascript
复制
echo "<table>";
    $res = doQuery($q);

    // create report body
    foreach($res as $r)
    {

         // set values from array of field names
         $row_fields = '';
         foreach ($arr_fields as $f)
         {
            // set current $arr_field value inside a table cell...
            $row_fields.= "<td>$r[$f]</td>";
         }

         // display the row
         echo "<tr>$row_fields</tr>";

    }
echo "</table>";

来自$arr_fields (color)的第一个数据库值按预期输出,其余的则不输出。

在MySQL控制台发出的组装查询显示了color, number and size的值。脚本没有生成任何SQL错误。

为什么PHP会显示第一个字段的值而跳过另外两个字段呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-06-28 19:35:22

更改这一行:

代码语言:javascript
复制
$row_fields.= "<td>$r[$f]</td>";

至:

代码语言:javascript
复制
$row_fields.= "<td>".$r[$f]."</td>";
票数 0
EN

Stack Overflow用户

发布于 2017-06-28 19:51:39

这个问题原来是我数组中每个字段名之前的一个空格(在上面的示例中没有显示)。

字段数组实际上是

代码语言:javascript
复制
$arr_fields = array('color', ' number', ' size');

当我删除空格后,值就会像往常一样出现。感谢诺伯特通过额外的测试帮助我找到正确的方向。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44810748

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档