我想简化我的应用构建查询和循环结果的方式。大多数实际代码都有效,除了 PHP 不显示从我的查询中获取的所有结果。
前言:前面的示例代码,请勿在生产中使用。
首先我构建查询。
$arr_fields = array('color', 'number', 'size');
$select_fields = implode(', ', $arr_fields);
$q = "SELECT $select_fields FROM supplychain";
现在我执行查询然后遍历结果集。
专业提示:不要将此代码用于任何重要的事情 - 它仅用于演示目的。
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 和 size
的值。脚本没有生成任何 SQL 错误。
为什么 PHP 显示第一个字段的值而跳过其他两个?
最佳答案
问题原来是我数组中每个字段名前的空格(上面的示例中未显示)。
字段数组实际上是
$arr_fields = array('color', ' number', ' size');
一旦我删除了空格,值就会照常显示。感谢 Norbert 通过额外的测试帮助我指明了正确的方向。
关于php - 创建字段数组然后循环遍历 PHP 中的集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44810748/