[英]How can I categorise MySQLi result set?
如何更改下面的代碼,以便我只回顯每個唯一的“$course”一次?
例如。 目前我的結果看起來像 =
ipswich-11:00-running ipswich-12:00-火烈鳥騎手 ipswich-14:00-lightning norwich-13:10-ed 回來了 norwich-14:05-redrum norwich-17:05-pickle
但我希望它們看起來像 =
伊普斯維奇
11:00-奔跑 12:00-火烈鳥騎士 14:00-閃電
諾維奇
13:10-ed 回來了 14:05-redrum 17:05-pickle
我想過在 for each 循環中做一個 mysqli 查詢,但肯定有更好的方法嗎?
我的代碼 =
<?php //connection block
if ($mysqli->connect_error) {die('Connect Error: ' . $mysqli->connect_error);}
$today = date("Ymd");
$query = "SELECT horse, course, time, date FROM dailytips WHERE date = $today ORDER BY course, time";
$result = $mysqli->query($query);
$today_uk = " " . date("d/m/y");
while($row = $result->fetch_array())
{ $rows[] = $row; }
echo "<h2>tips for" .$today_uk. "</h2>";
foreach($rows as $row)
{
$date = $row['date'];
$date = date("d/m/y", strtotime($date));
$horse = $row['horse'];
$time = $row['time'];
$course = $row['course'];
echo
'<div style= "width:600px; font-family:verdana;">
<div style="float:left; width:400px; margin-bottom:10px; margin-top10px;">
'.$row['course']. "-" .$row['time'] . "-" . $row['horse'] .'
</div>' ;
}
$result->close();
$mysqli->close();
?>
我猜你可以在另一個語句中嵌套一個 foreach 語句。
所以……
$query = "SELECT course, FROM dailytips WHERE date = $today ORDER BY course, time";
while($row = $result->fetch_array())
{ $rows[] = $row; }
echo "<h2>tips for" .$today_uk. "</h2>";
foreach($rows as $row) {
$query = "SELECT horse, time, date FROM dailytips WHERE course = $row['course'];
while($row = $result->fetch_array())
{ $rowDetail[] = $rowDetails; }
foreach($rows as $row) {
$date = $row['date'];
$date = date("d/m/y", strtotime($date));
$horse = $row['horse'];
$time = $row['time'];
$course = $row['course'];
echo
'<div style= "width:600px; font-family:verdana;">
<div style="float:left; width:400px; margin-bottom:10px; margin-top10px;">
'.$row['course']. "-" .$row['time'] . "-" . $row['horse'] .'
</div>' ;
}
}
我會考慮將你的結果放在一個與 DIV 相對的表格中,因為這似乎更適合你想要做得更好的事情。 在循環之前設置表格並在退出循環后關閉。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.