我正在尝试从两个日期之间的数据库中获取行。我已经在这里使用了其他问题来达到这一点,但我不知道如何从这里继续前进。
以下是代码,下面是输出的截图和在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();
?>
This is what the page looks like with the above code.
I've successfully selected the rows in SQL.
编辑:在将代码写入第二代码块的IF ELSE语句的问题时,我犯了一个错误。我刚刚将它更新为我在网站上实际拥有的内容。我根据解决方案没有改变任何东西,仍然没有得到要打印的行。
答案 0 :(得分:0)
您的结果已列出 - 正如您从屏幕截图中看到的那样。问题:While
和else
一起没有发现。
您的上一个示例缺少}
,因此它说:while { } else { echo "0 results"}
但echo "0 results"
应该与num_rows
- 检查有关,而不是与while
相关。
答案 1 :(得分:0)
你做的一切都正确,除了使用while/else
;
您的代码(第二部分)应如下所示:
if ($result->num_rows > 0) {
while () {
//print your rows
}
} else {
//Say that there's 0 results
}
答案 2 :(得分:0)
啊,伙计,我只需要从第一个区块中注释掉这一行:
$link->close();
如果不清楚代码块是否紧随其后,我向所有回答的人道歉。无论如何,对于有同样问题的其他人,请不要关闭连接-_-
Here's what is output when I comment out the line from the first block