Php While循环-将标题与循环结果分开-循环,然后为每组结果设置标题
我有一个while循环,它将所有链接的数字分隔成表中的不同部分。声明如下:Php While循环-将标题与循环结果分开-循环,然后为每组结果设置标题,php,mysql,Php,Mysql,我有一个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
$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>";
当我需要它时,就像:
| Company | Date | Hours |
| Result 1 | 10/11/2014 | 44 |
| Result 2 | 08/11/2014 | 22 |
| Title 1 | 20/11/2014 | |
根据表中所需的条目创建一个新数组怎么样。因此,您的代码将类似(注意添加了$outputarray): 编辑:假设每个数据集只有一个标题。如果您希望每组记录有多个标题,则需要在记录中设置标识集合的内容。在本例中,最简单的方法是根据结果是否为标题(根据您的标准),生成结果的多维数组
$linked=-1;
而($row=mysqli_fetch_数组($result2)){
$companyName=$row['TITLE'];
$arDates=strottime($row['start']);
$remaining=$row['remaining_HOURS'];
$linking=$row['LINK'];
$arNumber=$row['REF_NUMBER'];
$billable=$row['billable'];
如果($linked!=$row['LINK'])){
$outputarray['title'][]=“$companyName
.date('d/m/Y',$arDates)。“
剩余美元”;
$linked=$row['LINK'];
}否则{
$outputarray['row'][]=“$arNumber
$billable”;
}
}
“打印”
"; // 等把标题放在这里。
foreach($outputarray作为$key=>$value){
如果($key=='title'){
$thistTitle=$value;
}否则{
打印$value;
}
}
打印$thistitle;
打印“”;
显示的结果与我当时的结果完全相同什么是链接有多个标题?你会只显示一个标题吗?您可以拆分这两个数组(例如,$outputarraytle
和$outputarraytent
,并分别打印它们。但是来自查询的数据可能与您的愿景不匹配。标题将始终分隔结果,我编辑了我的问题,以向您展示我在底部的意思。不清楚您的输出是如何被分割的。您的查询中有一列不是hat同时输出结果
和标题
?如果$linked!=$row['LINK']
它是如何成为标题的?或者是向后的?是的,$linked!=$row['LINK']
总是显示标题。当$linked=$row['LINK']时,它会在数据库表中显示链接中具有相同数字的所有结果。
| Company | Date | Hours |
| Result 1 | 10/11/2014 | 44 |
| Result 2 | 08/11/2014 | 22 |
| Title 1 | 20/11/2014 | |
$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>";