2016-05-15 3 views
0

У меня есть три страницы search.php, которые обрабатывают sql-запрос, index.php, который имеет форму поиска it self и connect.php, которая имеет информацию о подключении к базе данных. Я следовал информацию из этого видео https://www.youtube.com/watch?v=gf32KXTP0C4SQL-запрос не возвращает результатов

Сначала я убедился, что запрос будет работать в phpMyAdmim query working in mysql я использовал в качестве теста. Как вы можете видеть, что возвращает 117 результатов

форме с ключевыми словами, как имя

<form action="search.php" method="get"> 
     <label> 
      Search 
      <input type="text" name="keywords" autocomplete="off"> 

     </label> 

     <input type="submit" value="Search"> 

search.php следующим образом, она должна искать таблицу Charactor для того, что было введено в форму в соответствии с их ketwords эхо amout результатов, а затем перечислить их

<?php 

require_once 'connect.php'; 

if(isset($_GET['keywords'])) { 

    $keywords = $db->escape_string($_GET['keywords']); 

    $query = $db->query(" 
     SELECT charactor_name, vault_number, history 
     FROM charactor 
     WHERE charactor_name like '%{keywords}%' 
    "); 
    ?> 

    <div class="result-count"> 
     Found <?php echo $query->num_rows; ?> results 
    </div> 


    <?php 

    if($query->num_rows) { 
     while($r = $query->fetch_object()) { 
      ?> 
      <div class="result"> 
      <a href="#"><?php echo $r->charactor_name; ?></a> 
      </div> 
      <?php 


     } 


    } 

} 

connect.php следующим образом я использовал код из http://php.net/manual/en/mysqli.construct.php для проверки соединения с базой данных из, если заявления вниз, чтобы убедиться connectoion было прист король. Я заметил это, когда я знал, что это работает

connection success

<?php 

$db = new mysqli('localhost', 'root', '', 'csc8417'); 
/* 
if (mysqli_connect_error()) { 
    die('Connect Error (' . mysqli_connect_errno() . ') ' 
      . mysqli_connect_error()); 
} 

echo 'Success... ' . $db->host_info . "\n"; 

$db->close(); 
?>*/ 

Независимо от того, что запрос я бегу, я всегда получаю 0 результат, как показано здесь

tenpenny Он должен вернуться tenpenny2

ответ

2

, пожалуйста, проверьте здесь:

$query = $db->query(" 
    SELECT charactor_name, vault_number, history 
    FROM charactor 
    WHERE charactor_name like '%{keywords}%' 
"); 

ключевые слова должны быть $ ключевыми словами

+0

Спасибо, что было. – Ausghostdog

+0

, который интересен в видео, как вы можете видеть здесь, у них нет $ https://i.imgur.com/KULwZfP.png – Ausghostdog

+0

Я не могу проверить видео, но в изображении, которое вы отправили (https://imgur.com/KULwZfP) они использовали $ keywords –

0

попробуйте этот?

if($query->num_rows()) { 

использование $query->num_rows() вместо $query->num_rows?

+1

$ query-> num_rows является корневым. http://php.net/manual/en/mysqli-result.num-rows.php –

Смежные вопросы