#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. Вы не предложили никаких изменений, не говоря уже о том, что вы не объяснили это.