我已经尝试过研究类似于我的问题的其他问题,但我没有找到任何具体解决这个问题的问题。我正在使用mysqli选择数据并将其显示在表格中。列table_yard
可以有多个值,因此我将这些值展开并将它们存储为要循环的数组,然后将结果存储在变量$yard_name
中。我稍后将此变量分配给表中的一行,如此($get
存储sql查询):
while ($row = mysqli_fetch_assoc($get)) {
$yards = explode(",", $row[table_yard]);
foreach ($yards as $yard) {
$yard_name = $yard . ", ";
}
$table_rows .= "<tr>
<td>" . mdy($row[table_date]) . "</td>
<td>" . $yard_name . "</td>
</tr>";
问题是,如果该数组中有多个值,则只显示第一个项目。我在$yards
上运行了一个调试,看它是否得到了数组的所有值,如下所示:
Array (
[0] => 711
[1] => 2793
[2] => 988
)
尽管如此,这是<td>
单元格中显示的内容:
711,
我希望它显示的是:
711, 2793, 988
我确信这是一个新手的错误,但我无法弄清楚。提前感谢您的帮助。
答案 0 :(得分:2)
未经测试但这应该有助于解决问题。在循环之前定义$yard_name
,这样就不会被不断覆盖
while ($row = mysqli_fetch_assoc($get)) {
$yards = explode(",", $row[table_yard]);
$yard_name = "";
foreach ($yards as $yard) {
$yard_name .= $yard . ", "; // Add to the string instead of overwriting
}
$table_rows .= "<tr>
<td>" . mdy($row[table_date]) . "</td>
<td>" . trim($yard_name, ",") . "</td>
</tr>";
}