Поиск и отображение базы данных с использованием php

#php #mysql

#php #mysql

Вопрос:

Веб-страница, на которой при вводе идентификатора отображается их местоположение из базы данных. Все местоположение в столбцах местоположения отображается при поиске определенного местоположения.

Меня попросили создать веб-страницу, на которой, когда пользователь вводит код, отображается его местоположение. Я не могу решить эту проблему. ‘id’ — это имя пользователя, а fname — столбец, в котором находится местоположение. Данные — это имя базы данных.

 <?php
include_once('dbconnect.php');
if(isset($_POST['search'])){
    $q = $_POST['q'];
    $query = mysqli_query($conn,"SELECT * FROM `user` WHERE `id` LIKE '%$qname%'"); 


    $count = mysqli_num_rows($query);
    if($count == "0"){
        $output = '<h2>No result found!</h2>';
    }else{
        while($row = mysqli_fetch_array($query)){
        $s = $row['fname']; 
                $output .= '<div><h2>'.$s.'</div></h2><br>';
            }
        }
    }
?>
<!DOCTYPE html>
<html>
    <head>
        <title>Search</title>
    </head>
    <body>
        <form method="POST" action="search.php">
            <input type="text" name="q" placeholder="query">
            <input type="submit" name="search" value="Search">
        </form>
        <?php echo $output; ?>
    </body>
</html>
  

Я ожидаю, что только одно указанное местоположение будет отображать не все местоположения в базе данных.

Комментарии:

1. Внимание: вы широко открыты для SQL-инъекций и должны действительно использовать параметризованные подготовленные операторы вместо ручного построения ваших запросов. Они предоставляются PDO или MySQLi . Никогда не доверяйте никаким входным данным, особенно тем, которые поступают со стороны клиента. Даже когда ваши запросы выполняются только доверенными пользователями, вы все равно рискуете повредить свои данные .

2. У вас нет вызываемой переменной $qname !

Ответ №1:

Проблема в вашем запросе, попробуйте выполнить следующее изменение:

 SELECT * FROM `user` WHERE `id` LIKE '%$qname%'
  

Для:

 SELECT * FROM user WHERE id LIKE '%$qname%'
  

Комментарии:

1. Вы не предложили никаких изменений, не говоря уже о том, что вы не объяснили это.