Поиск в базе данных сайта PHP - результаты запроса mySQL не отображаются - PullRequest
0 голосов
/ 05 ноября 2018

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

В index.php у меня есть:

<?php
include_once('search.php');
?>

<head>
<title>Search</title>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <link rel="stylesheet" type="text/css" href="style.css"/>
</head>
<body>
  <form method="POST" action="search.php">
  <input type="text" name="q" placeholder="Enter query"/>
  <input type="submit" name="search" value="Search" />
  </form>
</body>

В search.php у меня есть

<?php
include_once('db.php'); //Connect to database
if(isset($_POST['search'])){
  $q = $_POST['q'];
  $query = mysqli_query($conn, "SELECT * FROM 'words' WHERE 'englishWord' LIKE '%$q%'");
  $count = mysqli_num_rows($query);
  if($count == "0"){
    $output = '<h2>No result found</h2>';
}else{
  while($row = mysqli_fetch_array($query)){
  $s = $row['yupikWord']; //column of results
    $output .= '<h2>'.$s.'</h2><br>';
  }
}
}
echo $output;
mysqli_close($conn);
?>

В db.php у меня есть

<?php
$servername = "localhost";
$username = "qaneryararvik";
$password = "PASSWORD";
$database = "yupik";

// Create connection
$conn = new mysqli($servername, $username, $password, $database);
$dbcon = mysqli_select_db($conn,$database);

// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 
echo "Connected successfully<br>";

Я могу ввести текст в поле поиска и нажать кнопку «Поиск». Когда я нажимаю «Поиск», все, что я получаю, это пустая страница с надписью «Успешно подключено». Результаты запроса не отображаются. Что я делаю не так?

Ответы [ 2 ]

0 голосов
/ 05 ноября 2018

В search.php должно быть ниже

include_once('db.php'); //Connect to database
$output = "";
if(isset($_POST['search'])){
   $q = $_POST['q'];
   $sql ="SELECT * FROM words  WHERE englishWord LIKE '%$q%'";

if ($result=mysqli_query($conn,$sql))
{
   while($row = mysqli_fetch_array($result)){
   $s = $row['yupikWord']; //column of results
   $output .= '<h2>'.$s.'</h2><br>';
}
   mysqli_free_result($result);
}else{
   $output = '<h2>No result found</h2>';
}
mysqli_close($conn);
}else{
   $output = '<h2>No result found</h2>';
}

echo $output;
0 голосов
/ 05 ноября 2018

Цитаты неверны. Должно быть `вместо 'для таблиц и строк:

"SELECT * FROM `words` WHERE `englishWord` LIKE '%$q%'"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...