2015-04-12 2 views
0

Так что, в основном, я думаю, что добавление поля поиска на мой сайт выходит из моей лиги, но в Интернете есть так много информации, что я решил дать ему уйти.HTML-поле поиска всегда искажает нулевые результаты

Я начал путем добавления формы указательного Pagina, и это код, я использую:

 <form method="get" action="search.php"> 
      <table cellpadding="0px" cellspacing="0px"> 
       <tr> 
       <td style="border-style:solid none solid solid;border-color:#4B7B9F;border-width:1px;"> 
       <input type="text" name="q" style="width:100px; border:0px solid; height:17px; padding:0px 3px; position:relative;"> 
       </td> 
       <td style="border-style:solid;border-color:#4B7B9F;border-width:1px;"> 
       <input type="submit" value="" style="border-style: none; background: url('images/searchicon.gif') no-repeat; width: 24px; height: 19px;"> 
       </td> 
       </tr> 
      </table> 
     </form> 

Далее, мой search.php код:

<?php 
    ini_set('display_errors', 0); 
    $search = $_GET ['q']; 
    mysql_connect("localhost", "root", ""); 
    mysql_select_db("release"); 
    $query = mysql_query("SELECT * FROM game WHERE name LIKE '%" . $queryString . "%'"); 
    $foundnum = mysql_num_rows($query); 

    if ($foundnum == 0) { 
     echo "No results found. Either this game doesn't exist, or we have yet to add it. Please contact us!"; 
    } 
    else { 
     echo "$foundnum results found !<p>"; 
     $row = mysql_fetch_assoc($query); 
    { 
     echo '<p>'.$row['game_name'].'</p>'; 
    } 
    } 
?> 

Запрос непрерывно перекликается с сообщением $foundnum == 0, хотя данные, которые я ищу, находятся в таблице игр.

Однако, когда я пытаюсь этот код:

$query = mysql_query("SELECT game_name FROM game WHERE game_name LIKE '%" . $queryString . "%'"); 

Отпечатки запроса '35 результаты поиска»на моем экране. У меня есть 35 записей в базе данных, но это не имеет смысла (для меня), так как я ищу одно имя игры, которое вводится только один раз ...

+0

Попробуйте изменить свой запрос следующим образом: $ query = mysql_query ("SELECT * FROM game WHERE name LIKE '%". $ Search. "%'"); –

+0

Майкл, голосуйте за другого, чтобы помочь. Благодарю. –

+0

Я сделал это в апреле 2015 года, Анант? – Michael

ответ

1

Прежде всего вы используете устаревшую версию mysql_ * необходимо использовать mysqli_ *. Пожалуйста, проверьте ниже.

<?php 
ini_set('display_errors', 2); 
$search = $_GET ['q']; 
// see changes from below line 
$conn = mysqli_connect("localhost", "root", "","release"); 
$query = mysqli_query($conn,"SELECT game_name FROM game WHERE game_name LIKE '%". $search ."%'"); 
$foundnum = mysqli_fetch_array($query); 
$count = count($foundnum['game_name']); 
if ($foundnum == 0) { 
    echo "No results found. Either this game doesn't exist, or we have yet to add it. Please contact us!"; 
} 
else { 
    echo "$count results found !<p>"; 
    echo"<pre/>";print_r($foundnum['game_name']); 
} 
?> 

Примечание: - удалите код из индекса и файла поиска, который вы пишете вверх.

+0

Эй. Я случайно забыл изменить mysql на mysqli, я скопировал этот код из старой темы Stackoverflow. Это моя ошибка. Однако я не получаю никаких результатов, когда я использую ваш код. – Michael

+0

любая ошибка, которую вы получаете? –

+0

Нет, отображается эхо-сигнал $ foundnum == 0, хотя я вхожу в существующее имя игры в поле поиска. – Michael

0

Из вашего второго кода кажется, что есть опечатка.

Попробуйте изменить запрос на $

$query = mysql_query("SELECT * FROM game WHERE game_name LIKE '%" . $queryString . "%'"); 

и дайте мне знать, если он работает или нет :)

+0

Эй. Я пробовал это, но, к сожалению, каждая запись повторяется, а не только тот, который требуется найти. – Michael

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