我使用此代碼迴路決定:PHP循環 - 使通過的MySQL行基於行值
$sql = "SELECT * FROM vwPublicServices2 ORDER BY Service_Date__c,
Service_Time__c";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
echo "<table><tr><th>Service Date</th><th>Service Time</th>
<th>Church</th><th>Service</th><th>Service Leader</th></tr>";
while($row = $result->fetch_assoc()) {
// insert header stuff on change of $date1
if ($row["ServiceDate"] <> $date1) {
echo $row["ServiceDate"]. "(".$date1.")"."<br/>";
echo "<tr><td>" . $row["ServiceDate"]. "</td><td>" .
$row["Service_Time__c"]. "</td><td>" . $row["Location__c"]. "</td>
<td>" . $row["PublicName"]. "</td><td>" . $row["FullName"]."</td>
</tr>";
// set $date1 = row ServiceDate
$date1 = $row["ServiceDate"];
} else {
// echo row data to follow on previous - i.e date has not
changed
echo "<tr><td>" .
$row["ServiceDate"]. "</td><td>" .
$row["Service_Time__c"]. "</td><td>" .
$row["Location__c"]. "</td><td>" .
$row["PublicName"]. "</td><td>" .
$row["FullName"]."</td></tr>";
}
}
echo "</table>";
} else {
echo "0 results";
}
$conn->close();
每次行[「ServiceDate」]的變化我要插入一些頭數據。 下面是一些結果:
有兩件事情我不明白 - 爲什麼是日期檢查在第二行「一個日期」,即爲什麼14/05/2017相比,13/05/2017?
此外,爲什麼第二個回聲陳述不出現?
我想我錯過了while循環的工作方式的一些基本點!這裏的任何幫助非常感謝。謝謝。
下面是使用上述類似數據在日期更改時插入標頭的說明。 (該網頁從Salesforce通過其API提取數據,然後使用類似的日期檢查到一個在上面的MySQL的代碼 - 但它遍歷了For..Each循環中的數據)
if條件中的'$ date1'變量是什麼?它的價值在哪裏? –
你必須在你的循環之外聲明'$ date1' – schlonzo
對不起,$ date1的聲明在代碼中的前面,在我省略的數據庫憑證之前。 $ date1 =「01/01/1900」; – peter300