[英]Selecting rows between two dates in SQL with PHP
我正在嘗試從兩個日期之間的數據庫中獲取行。 為了解決這一點,我在這里使用了其他問題,但是我不知道如何從這里前進。
這是代碼,下面是輸出的屏幕截圖和運行SQL查詢的照片。
我在這里先向您的幫助表示感謝!
-
代碼的第一部分輸出ID,名稱等。
<?php
$sql = "SELECT * FROM songs ";
$result = $link->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
echo "id: " . $row["ID"] . " - Name: " . $row["name"] . " " . $row["released"]. "<br>";
}
} else {
echo "0 results";
}
/* close connection */
$link->close();
?>
此部分代碼輸出“ 0個結果”
<?php
$from_date = '2015-01-01';
$to_date = '2017-04-04';
$sql = "SELECT * FROM songs WHERE released BETWEEN '" . $from_date . "' AND '" . $to_date . "' ";
$result = $link->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
echo "id: " . $row["ID"] . " - Name: " . $row["name"] . " " . $row["released"]. "<br>";
}
} else {
echo "0 results";
}
/* close connection */
$link->close();
?>
編輯:將代碼寫入第二塊代碼中的IF ELSE語句的問題時,我犯了一個錯誤。 我只是將其更新為網站上的實際內容。 我沒有根據解決方案進行任何更改,而且仍然無法打印行。
您的結果將列出-從屏幕截圖中可以看到。 問題: While
沒有else
意義。
您的最后一個示例缺少}
因此它說: while { } else { echo "0 results"}
但是echo "0 results"
應該與num_rows
-check相關,而不與while
。
除了使用while/else
,您一切都做對了; 您的代碼(第2個)部分應如下所示:
if ($result->num_rows > 0) {
while () {
//print your rows
}
} else {
//Say that there's 0 results
}
啊,我只需要在第一行中注釋掉這一行:
$link->close();
我向所有回答的人表示歉意,如果不清楚這些代碼塊是否彼此跟隨。 無論如何,對於其他有相同問題的人,請不要關閉連接-_-
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.