2013-04-24 5 views
0

До сих пор у меня есть это ...MySQLi/PHP Поисковая система не работает

<html> 
<head> 
<title>Search</title> 
</head> 
<body> 
<form method="GET"> 
<input type="text" size="30" /> 
</form> 

<?php 
$db = "example"; 

mysqli_connect("localhost","root","*************"); 
mysqli_select_db($db); 
$query = mysqli_query("SELECT * FROM TABLE WHERE search_query = '$q'"); 
mysqli_query($query); 
$results = mysqli_fetch_array($query); 

if($results !=="") { 
echo "<a href='$array[0]'>Result 1</a>"; 
echo "<a href='$array[1]'>Result 2</a>"; 
// you get the idea 
} 
?> 
</body> 
</html> 

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

ответ

4

Проблема вы выполняете запрос, прежде чем вы создаете соединение дб переместить это вверх

mysqli_connect("localhost","root","*************"); 
mysqli_select_db($db); 

затем выполнить запрос

$query = mysqli_query("SELECT * FROM TABLE WHERE search_query = '$q'"); 
$results = mysqli_fetch_array($query); 
0

Прежде всего вам нужно открыть соединение с базой данных после того, как вы сможете запросить сам db.

Try:

<html> 
<head> 
<title>Search</title> 
</head> 
<body> 
<form method="GET"> 
<input type="text" size="30" /> 
</form> 

<?php 
$db = "example"; 
/* Open connection */ 
mysqli_connect("localhost","root","*************"); 
mysqli_select_db($db); 
/* Query the DB */ 
$query = mysqli_query("SELECT * FROM TABLE WHERE search_query = '$q'"); 
$results = mysqli_fetch_array($query); 



if($results !=="") { 
echo "<a href='$array[0]'>Result 1</a>"; 
echo "<a href='$array[1]'>Result 2</a>"; 
// you get the idea 
} 
?> 
</body> 
</html> 
1

Вы не дали текст поставить имя, так где же «$ д» взялось?

Вы не проверив, что $ _GET [ «имя»] существует на втором выполнении (после того, как они давят входят)

Вы подключения к базе данных после того, как вы опрошена его

Try добавив имя входного

<input type="text" size="30" name="q" /> 

и

<?php 

if (array_key_exists('q', $_GET)) { 
    ... 
    $q = $_GET['q']; 
    mysqli_connect("localhost","root","*************"); 
    mysqli_select_db($db); 
    $query = mysqli_query("SELECT * FROM TABLE WHERE search_query = '$q'"); 
    ... 
} 
+0

спасибо, я также добавил «mysql_query ($ запроса);» чтобы он фактически выполнялся ** Выполнен ** код – user2316286

-1

вы используете VARI способный $q, но вы не определили его.
Вы должны установить переменную в значение результата поиска, например:

$q = $_GET['searchvalue'] 
Смежные вопросы