LIMIT не работает в MariaDB - много чего перепробовал - PullRequest
0 голосов
/ 20 февраля 2019
$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, чтобы узнать правильный синтаксис для использования рядом с '10 именем FROM lastsearches Заказать По данным DESC LIMIT 1 'в строке 1

$query = "SELECT TOP 10 name FROM lastsearches Order By data DESC";

-> это был запрос;Также первый запрос работал правильно в phpmyadmin, раздел SQL.

Ответы [ 2 ]

0 голосов
/ 20 февраля 2019

TOP 10 - это синтаксис SQL Server, а не MySQL.MySQL использует LIMIT 10 с очень похожим эффектом.

Поскольку я не вижу TOP 10 в вашем коде, может ли это быть какой-то интерфейсный пакет, связанный с SQL Server?

0 голосов
/ 20 февраля 2019

Запрос, по которому вы фактически отображаете результаты, выглядит следующим образом:

$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, но он ничего не делает внутри этого цикла, поэтому вы, вероятно, можете его удалить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...