$dbhost = "localhost";
$dbuser = "root";
$dbpass = "";
$dbname = "igscript";
$con = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname);
$query = "SELECT * FROM lastsearches";
$result = mysqli_query($con, $query);
if(mysqli_connect_errno()) {
die("DB Error: " . mysqli_connect_error() . " ( " .mysqli_connect_errno() . ")");
}
while($row = mysqli_fetch_assoc($result)) {
$query = "SELECT * FROM lastsearches Order By data DESC LIMIT 1;";
echo '<center><p>'.$row["name"].'</p> </center><hr>';
if(!mysqli_query($con, $query)) {
die('Error : '.mysqli_error($con));
}
}
$result = mysqli_query($con, $query);
每当我使用LIMIT 1或LIMIT 10时;在$ query上,它根本没有任何作用。仍然显示相同数量的行。我在互联网上也尝试了TOP 10或TOP(10),并且得到
错误:您的SQL语法有错误;检查与您的MariaDB服务器版本相对应的手册以获取正确的语法,以在第1行的'10 name FROM lastsearches Order By data DESC LIMIT 1'附近使用
$query = "SELECT TOP 10 name FROM lastsearches Order By data DESC";
->这是查询; 同样,第一个查询在phpmyadmin的SQL部分中也可以正常工作。
答案 0 :(得分:3)
您实际从中显示结果的查询是此查询:
$query = "SELECT * FROM lastsearches";
$result = mysqli_query($con, $query);
如果要限制结果,则需要修改该查询,即
$query = "SELECT * FROM lastsearches Order By data DESC LIMIT 1";
$result = mysqli_query($con, $query);
我不确定您在while循环中使用查询实现什么目的,但是在该循环中它没有做任何事情,因此您可以删除它。
答案 1 :(得分:0)
TOP 10
是SQL Server语法,而不是MySQL。 MySQL使用LIMIT 10
的效果非常相似。
由于在您的代码中看不到TOP 10
,它可能是与SQL Server绑定的某些接口程序包吗?