Сравнение входных данных с данными, запрашиваемыми из базы данных - PullRequest
0 голосов
/ 23 декабря 2018

Поэтому, когда я попытался получить одну случайную строку в базе данных и сохранить ее в переменных, мне кажется, что я не могу повторно использовать эти переменные для моего следующего SQL-запроса, как я пытался в этих строках.

Сначала я получаюодна случайная строка в базе данных и сохранить ее в переменных для последующего использования

$mysqli = new mysqli($hostname, $username, $password, $dbname, $port) or die(mysqli_error($mysqli));
$sqlcompare = "SELECT * FROM questions order by rand() limit 1";
$result = mysqli_query($mysqli, $sqlcompare);
$row = mysqli_fetch_row($result);
$pos = $row[0];
$word = $row[1];

$pos - это идентификатор этой строки $word - это данные этой строки.

Тогда я получаюпользовательский ввод и проверка базы данных, если есть строка, имеют одинаковый идентификатор с $pos, а входное слово совпадает с этой строкой

$input = $mysqli->real_escape_string($_POST['input']);  
$sqlcheck = "SELECT * FROM questions WHERE word = $input AND id = $pos";
$sqlresult = mysqli_query($mysqli, $sqlcheck);
if (isset($_POST['compare'])) {
    if (mysqli_num_rows($sqlresult)>=1) {
        echo "Found that input";
    } else {
        echo "Not found";
    }
}

Когда я пытался получить слово из базы данных непосредственно от пользователявход, который имеет только одно условие, код работает отлично, но когда я добавляю условие id, он больше не работает.Любая идея, где я все испортил?

Редактировать заметку: Я только что попытался повторить $pos и $word, и это прекрасно работает, но каким-то образом, когда я попытался поместить $pos varibale в sql для запроса, этоне работает.

1 Ответ

0 голосов
/ 23 декабря 2018

Используйте вместо вместо (=).

$input = $mysqli->real_escape_string($_POST['input']);  
$sqlcheck = "SELECT * FROM questions WHERE word LIKE '%".$input."%' AND id = $pos";
$sqlresult = mysqli_query($mysqli, $sqlcheck);

Mysql Like docs

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