这些是代码。
<table class="table table-bordered">
<thead>
<tr><th>Sn</th><th>Status</th> <th>Location</th> <th>Time</th></tr>
</thead>
<tbody>
<?php
$i=0;
$query2 = "SELECT * FROM tbl_statustimeline WHERE cons_no = '$cons_no' ORDER BY date DESC";
$results2 = $mysqli->query($query2);
if($results2){
while($row2 = $results2->fetch_assoc()) {
$i++;
?>
<tr>
<td colspan='4'><?php echo $row2['date']; ?></td>
</tr>
<tr>
<td><?php echo $i; ?></td>
<td><?php echo $row2['status']; ?> - <?php echo $row2['Location']; ?></td>
<td><?php echo $row2['address']; ?></td>
<td><?php echo $row2['time']; ?></td>
</tr>
<?php
}
}
?>
</tbody>
</table>
所以我需要2016-07-12,2016-07-15,2016-07-19等日期与这些信息分开显示。
答案 0 :(得分:1)
如果您想获得与DHL跟踪系统相同的结果,您有两种变体:
<script type="text/javascript">
$(document).ready(
function() {
$("#search").keyup(
function ()
{
var value = this.value.toLowerCase().trim();
$("table tr").each(
function (index)
{
if (!index) return;
$(this).find("td").children().attr("value").each(
function ()
{
var id = $(this).text().toLowerCase().trim();
var not_found = (id.indexOf(value) == -1);
$(this).closest('tr').toggle(!not_found);
return not_found;
});
});
});
});
</script>
<!-- Fetch table data -->
<sql:setDataSource var="myDataSource" driver="oracle.jdbc.OracleDriver" url="jdbc:oracle:thin:@10.1.56.49:1521:something" user="something" password="something"/>
<sql:query var="result" sql="select * from garageproducts" dataSource="${myDataSource}"/>
<table id="mytable" class="table table-hover">
<thead>
<tr>
<th>Mark</th>
<th>Barcode</th>
<th>Name</th>
<th>Brand</th>
<th>Stock</th>
<th>Cost</th>
</tr>
</thead>
<tbody>
<%! int cnt=0; %>
<c:forEach var="row" items="${result.rows}">
<tr>
<td hidden="true">${row.pid}</td>
<td>
<input type="checkbox" value="">
</td>
<td><input type="text" id='<%= "barcode"+cnt %>' value="${row.barcode}" name="barcodename" class="form-control input-sm"></td>
<td><input type="text" id='<%= "name"+cnt %>' value="${row.name}" name="namename" class="form-control input-sm"></td>
<td><input type="text" id='<%= "brand"+cnt %>' value="${row.brand}" name="brandname" class="form-control input-sm"></td>
<td><input type="text" id='<%= "stock"+cnt %>' value="${row.stock}" name="stockname" class="form-control input-sm"></td>
<td><input type="text" id='<%= "cost"+cnt %>' value="${row.cost}" name="costname" class="form-control input-sm"></td>
</tr>
<% ++cnt; %>
</c:forEach>
</tbody>
</table>
然后在脚本中检查当前行中的日期是否与上一行中的日期不同 - 这是您必须显示日期分隔符的时刻;
1) SELECT * FROM table ORDER BY TIMESTAMP(date_column,time_column) DESC
您首先使用上述查询收集所需的所有日期,然后对于每个日期,您必须显示日期分隔符并发出另一个SQL查询
2) SELECT DISTINCT date_column FROM table
获取时间和状态
答案 1 :(得分:1)
<table class="table table-bordered">
<thead>
<tr><th>Sn</th><th>Status</th> <th>Location</th> <th>Time</th></tr>
</thead>
<tbody>
<?php
$i=0;
$cons_no=$row["cons_no"];
$query2 = "SELECT * FROM tbl_statustimeline WHERE cons_no = '$cons_no' ORDER BY date DESC";
$results2 = $mysqli->query($query2);
if($results2){
$currentDate = false;
while($row2 = $results2->fetch_assoc()) {
$i++;
if ($row2['date'] != $currentDate){
?>
<tr>
<td colspan='4'><?php echo $row2['date']; ?></td>
</tr>
<?php $currentDate = $row2['date'];
}
?>
<tr>
<td><?php echo $i; ?></td>
<td><?php echo $row2['status']; ?> - <?php echo $row2['Location']; ?></td>
<td><?php echo $row2['address']; ?></td>
<td><?php echo $row2['time']; ?></td>
</tr>
<?php
}
}
?>
</tbody>
</table>