PHP:从具有重复项的数组构建HTML表
我有一个数据库表(通过查询构建),其中列出了成员(称为团队)、事件、开始日期和结束日期。一个成员可能会在表中列出多次,因为它们与多个事件关联 我想构建一个HTML表,列出成员的名称,后跟与之关联的每个事件,然后再转到下一个成员(可能是数组中的一些项) 我正在考虑使用PHP:从具有重复项的数组构建HTML表,php,mysql,sql,arrays,Php,Mysql,Sql,Arrays,我有一个数据库表(通过查询构建),其中列出了成员(称为团队)、事件、开始日期和结束日期。一个成员可能会在表中列出多次,因为它们与多个事件关联 我想构建一个HTML表,列出成员的名称,后跟与之关联的每个事件,然后再转到下一个成员(可能是数组中的一些项) 我正在考虑使用foreach()语句,但无法使其工作。有没有关于我如何实现这一目标的建议?谢谢 while(list($Event, $Troop, $StartDate, $EndDate) = mysqli_fetch_array($resul
foreach()
语句,但无法使其工作。有没有关于我如何实现这一目标的建议?谢谢
while(list($Event, $Troop, $StartDate, $EndDate) = mysqli_fetch_array($result)) {
$return=$return . "<table>";
$return=$return . "<tr>";
$return=$return . "<th colspan=3>" . $Troop . "</th>";
$return=$return . "</tr>";
$return=$return . "<tr>";
$return=$return . "<th>Event</th>";
$return=$return . "<th>Start Date</th>";
$return=$return . "<th>End Date</th>";
$return=$return . "</tr>";
//foreach ($Troop as $thisTroop) {
$return=$return . "<tr>";
$return=$return . "<td>" . $Event . "</td>";
$return=$return . "<td>" . $StartDate . "</td>";
$return=$return . "<td>" . $EndDate . "</td>";
$return=$return . "</tr>";
//}
$return=$return . "</tr>";
$return=$return . "</table>";
}
while(列表($Event、$teash、$StartDate、$EndDate)=mysqli\u fetch\u数组($result)){
$return=$return.“;
$return=$return.“;
$return=$return.“$force.”;
$return=$return.“;
$return=$return.“;
$return=$return.“事件”;
$return=$return.“开始日期”;
$return=$return.“结束日期”;
$return=$return.“;
//foreach(部队作为$ThisForEach){
$return=$return.“;
$return=$return.“$Event.”;
$return=$return.“$StartDate.”;
$return=$return.“$EndDate.”;
$return=$return.“;
//}
$return=$return.“;
$return=$return.“;
}
创建一个包含部队密钥的多维数组,并将每个记录与同一部队分组。然后使用foreach()循环数组并打印信息
用此代码替换您的代码。sql结果必须按组排序
$return = '';
$currentTroop = '';
while(list($Event, $Troop, $StartDate, $EndDate) = mysqli_fetch_array($result)) {
if ($currentTroop != $Troop) {
$return .= "<table>"
."<tr>";
."<th colspan=3>" . $Troop . "</th>"
."</tr>"
."<tr>"
."<th>Event</th>"
."<th>Start Date</th>"
."<th>End Date</th>"
."</tr>";
}
$return .= "<tr>"
."<td>".$Event."</td>"
."<td>".$StartDate."</td>"
."<td>".$EndDate."</td>"
."</tr>";
if ($currentTroop != $Troop) {
$return .= "</tr>"
."</table>";
$currentTroop = $Troop;
}
}
$return='';
$currentForce='';
while(list($Event、$teash、$StartDate、$EndDate)=mysqli\u fetch\u array($result)){
如果($CurrentForce!=$Force){
$return.=“”
."";
.“.$部队”
.""
.""
“事件”
“开始日期”
“结束日期”
."";
}
$return.=“”
.“.$Event.”
.“.$StartDate”
.“.$EndDate”
."";
如果($CurrentForce!=$Force){
$return.=“”
."";
$CurrentForce=$Force;
}
}
您遇到了什么错误?如果我创建了两个列表,一个是列表a($team)
,另一个是列表b($Event,$StartDate,$EndDate)
,是否有效?没有错误。该代码按原样工作,但是,它每次都列出团队,而不是在事件之后列出一次团队。很好!我开始试验这个方法,但你的方法比我的干净多了。谢谢