我有一个SELECT STATEMENT,返回3个值:Id,titel,erscheinungsdatum。 我正在获取名为$ filme和$ datum的2个数组中的值。
一切都很好,但我希望一个表中的两个关联数组作为输出。
$query->bind_result($id, $titel, $date);
$query->execute();
while($query->fetch()) {
$filme[$id] = $titel;
$datum[$id] = $date;
}
if(!empty($filme) && !empty($datum)) {
echo "
<table border='3'>
<th>Filmtitel</th>
<th>ErscheinungsDatum</th>
";
foreach($filme as $key => $value) {
echo "<tr>";
echo "<td>$value</td>";
echo "</tr>";
}
foreach($datum as $key => $value) {
echo "<tr>";
echo "<td>$value</td>";
echo "</tr>";
}
echo "
</table>
";
}
我尝试过双foreach循环,merge_function等等......
答案 0 :(得分:3)
我认为您要做的是在一行中同时包含两个值(来自$datum
和$filme
)。
所以,在那一刻,您将每个值输出到单独一行的列中。
您需要在一个表行中输出两个数组的值,以实现所需的输出。
foreach($filme as $key => $value) {
echo "<tr>";
echo "<td>$value</td>";
echo "<td>" . $datum[$key] . "</td>";
echo "</tr>";
}
修改作为附注,您需要将<th></th>
标记包装在<thead><tr></tr></thead>
答案 1 :(得分:1)
您是否必须将结果存储在两个关联数组中,或者您需要的是最终表?
如果您不需要数组,只需在while($query->fetch())
答案 2 :(得分:1)
我会使用一个二维数组,构造如下:
while($query->fetch()) {
// I suppose some processing is done here...
$filme[$id]['titel'] = $titel;
$filme[$id]['date'] = $date;
}
可以像这样输出:
foreach($filme as $key => $value) {
echo "<tr>";
printf("<td>%s</td><td>%s</td>",$value['titel'],$value['date']);
echo "</tr>";
}
如果没有后处理/中间处理,@ danmullen的建议也应该有用。