我想做一个简单的PHP,SQL搜索引擎,将从我的数据库中选择“LIKE”关键字(查询)并显示它的所有内容。但它不会工作。它只显示文字“问题”(见第32行),经过几个小时的排除故障后,我仍然无法弄清楚。简单的PHP/SQL搜索引擎
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>Search Engine Test</title>
</head>
<body>
<script language="php">
// Create a database connection
$connection = mysql_connect("*****","*****","*****");
if (!connection) {
die ("Please reload page. Database connection failed: " . mysql_error());
}
// Select a databse to use
$db_select = mysql_select_db("*****",$connection);
if (!$db_select) {
die("Please reload page. Database selection failed: " . mysql_error());
}
// Search Engine
// Only execute when button is pressed
if (isset($_POST['search'])) {
// Filter
//$keyword = trim ($keyword);
echo $keyword;
// Select statement
$search = mysql_query("SELECT * FROM tbl_name WHERE cause_name LIKE '%keyword%'");
// Display
$result = @mysql_query($search);
if (!$result){
echo "problem";
exit();
}
while($result = mysql_fetch_array($search))
{
echo $result['cause_name'];
echo " ";
echo "<br>";
echo "<br>";
}
$anymatches=mysql_num_rows($search);
if ($anymatches == 0)
{
echo "Nothing was found that matched your query.<br><br>";
}
}
</script>
<form action="<?php echo $_SERVER['PHP_SELF']?>" method="post">
<input type="text" name="keyword">
<input type="submit" name="search" value="Search">
</body>
</html>
当我改变你的建议时,它仍然不起作用,只是输出消息“找不到匹配的内容你的查询“:(同时,在第33行和第40行上都出现了PHP错误消息,说”提供的参数不是有效的MySQL结果资源“。这些行是你提出的改变后发生的事情。第33行是”while($结果= mysql_fetch_array($ search))“和40是”$ anymatches = mysql_num_rows($ search);“可能只是试图重写搜索代码 – Tim
注意:当我登录phpMyAdmin并在我的数据库上运行SQL查询选择所有原因名称就像关键字(我只是输入关键字)的所有东西,所以我知道问题不在数据库不工作或我的表中的数据缺失 – Tim
@ user2 6243491 - 这是因为$ search只是一个包含sql语句的字符串,并不是查询的实际结果。我已经更新了我的答案,所以你可以看到你需要做些什么来实现它。 – bestprogrammerintheworld