2013-04-24 112 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

首先你必須打開數據庫連接後才能查詢數據庫本身。

嘗試:

<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

你沒有給在把名稱的文本,那麼,這是否「$ Q」從何而來?

你不檢查$ _GET [「名」]存在於第二執行(之後便按Enter鍵)

你連接到數據庫,你問,它

嘗試後加入

<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 2013-04-24 16:01:29

-1

您使用的是VARI輸入名稱能夠$q,但你還沒有定義它。
您必須將變量設置爲搜索結果的價值,如:

$q = $_GET['searchvalue']