0

到目前为止,我有这个...

<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

4 回答 4

4

问题是您在创建数据库连接之前执行查询

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

然后执行您的查询

$query = mysqli_query("SELECT * FROM TABLE WHERE search_query = '$q'");  
$results = mysqli_fetch_array($query);
于 2013-04-24T15:52:53.510 回答
1

你没有给 put 中的文本命名,那么 '$q' 是从哪里来的呢?

您没有在第二次执行时检查 $_GET['name'] 是否存在(在他们按下回车键之后)

查询后连接到数据库

尝试添加输入名称

<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'");  
    ...
}
于 2013-04-24T15:59:43.203 回答
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>
于 2013-04-24T15:56:26.910 回答
-1

您正在使用变量$q,但尚未定义它。
您必须将变量设置为搜索结果的值,例如:

$q = $_GET['searchvalue']
于 2015-09-28T17:11:34.187 回答