作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 while 循环,它将所有链接的数字分成表中的不同部分。以下是声明:
$result2 = mysqli_query($con,"SELECT a.*, b.*, c.* FROM b_statement_main a
INNER JOIN b_crm_company b ON a.COMPANY_ID = b.ID INNER JOIN b_statement c
ON a.LINK = c.LINK
WHERE a.COMPANY_ID = '$companyID2' AND a.COMMENCE BETWEEN '$from2' AND '$to2' ");
$linked = -1;
while($row = mysqli_fetch_array($result2))
{
$companyName = $row['TITLE'];
$arDates = strtotime($row['COMMENCE']);
$remaining = $row['REMAINING_HOURS'];
$linking = $row['LINK'];
$arNumber = $row['REF_NUMBER'];
$billable = $row['BILLABLE'];
if($linked != $row['LINK'])
{
print "<tr><td><strong>$companyName</strong></td><td></td><td><strong>".date('d/m/Y',$arDates)."</strong></td><td></td><td></td><td><strong>$remaining</strong></td></tr>";
$linked = $row['LINK'];
}
print "<tr><td></td><td></td><td></td><td>$arNumber</td><td>$billable</td><td></td></tr>";
}
print "</table>";
因此,它返回的是每个部分的标题,然后循环与下面的查询相关的结果。返回所有相应结果后,它将再次显示标题部分并再次循环相关结果。它将重复此操作,直到显示所有内容。
但是我想要的是标题部分位于循环结果下方。因此,它将循环结果,然后一旦循环了该特定部分的所有结果,就把标题放在下面。然后它将进入并再次循环结果并将标题放在下面,它将继续直到完成。
任何人都知道我该怎么做。显然,如果我将 print 移到 if 之前,那么它会放置结果、标题、结果、标题等。
这就是目前的样子(不准确,只是为了显示标题和结果):
| Company | Date | Hours |
| Title 1 | 20/11/2014 | |
| Result 1 | 10/11/2014 | 44 |
| Result 2 | 08/11/2014 | 22 |
当我需要它时:
| Company | Date | Hours |
| Result 1 | 10/11/2014 | 44 |
| Result 2 | 08/11/2014 | 22 |
| Title 1 | 20/11/2014 | |
最佳答案
如何根据表中所需的条目创建一个新数组。所以你的代码会像这样(注意添加了$outputarray
):
编辑:假设每个数据集只有一个标题。如果您希望每组记录有多个标题,则需要在记录中设置用于标识一组的内容。在这种情况下,最简单的方法是根据结果是否是标题(根据您的标准)制作结果的多维数组。
$linked = -1;
while($row = mysqli_fetch_array($result2)){
$companyName = $row['TITLE'];
$arDates = strtotime($row['COMMENCE']);
$remaining = $row['REMAINING_HOURS'];
$linking = $row['LINK'];
$arNumber = $row['REF_NUMBER'];
$billable = $row['BILLABLE'];
if($linked != $row['LINK']){
$outputarray['title'][] ="<tr><td><strong>$companyName</strong></td>
<td></td><td><strong>".date('d/m/Y',$arDates)."</strong></td><td></td><td>
</td><td><strong>$remaining</strong></td></tr>";
$linked = $row['LINK'];
} else {
$outputarray['row'][]= "<tr><td></td><td></td><td></td><td>$arNumber</td>
<td>$billable</td><td></td></tr>";
}
}
print"<table>
<thead>"; // etc... have the titles go here.
foreach($outputarray as $key=> $value){
if($key=='title'){
$thistitle=$value;
} else {
print $value;
}
}
print $thistitle;
print "</table>";
关于php - While 循环 - 将标题与循环结果分开 - 循环然后为每组结果添加标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27045553/
我是一名优秀的程序员,十分优秀!