Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP:从具有重复项的数组构建HTML表_Php_Mysql_Sql_Arrays - Fatal编程技术网

PHP:从具有重复项的数组构建HTML表

PHP:从具有重复项的数组构建HTML表,php,mysql,sql,arrays,Php,Mysql,Sql,Arrays,我有一个数据库表(通过查询构建),其中列出了成员(称为团队)、事件、开始日期和结束日期。一个成员可能会在表中列出多次,因为它们与多个事件关联 我想构建一个HTML表,列出成员的名称,后跟与之关联的每个事件,然后再转到下一个成员(可能是数组中的一些项) 我正在考虑使用foreach()语句,但无法使其工作。有没有关于我如何实现这一目标的建议?谢谢 while(list($Event, $Troop, $StartDate, $EndDate) = mysqli_fetch_array($resul

我有一个数据库表(通过查询构建),其中列出了成员(称为团队)、事件、开始日期和结束日期。一个成员可能会在表中列出多次,因为它们与多个事件关联

我想构建一个HTML表,列出成员的名称,后跟与之关联的每个事件,然后再转到下一个成员(可能是数组中的一些项)

我正在考虑使用
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)
,是否有效?没有错误。该代码按原样工作,但是,它每次都列出团队,而不是在事件之后列出一次团队。很好!我开始试验这个方法,但你的方法比我的干净多了。谢谢