我想简化我的应用程序构建查询和循环结果的方式。大多数实际代码都能工作,但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 and size的值。脚本没有生成任何SQL错误。
为什么PHP会显示第一个字段的值而跳过另外两个字段呢?
发布于 2017-06-28 19:35:22
更改这一行:
$row_fields.= "<td>$r[$f]</td>";至:
$row_fields.= "<td>".$r[$f]."</td>";发布于 2017-06-28 19:51:39
这个问题原来是我数组中每个字段名之前的一个空格(在上面的示例中没有显示)。
字段数组实际上是
$arr_fields = array('color', ' number', ' size');当我删除空格后,值就会像往常一样出现。感谢诺伯特通过额外的测试帮助我找到正确的方向。
https://stackoverflow.com/questions/44810748
复制相似问题