我是一个php新手,我正在努力让这个表单起作用,但是当我运行查询时,我得到了一个“错误获取数据”。 对此有任何帮助都很棒!
这是html表单代码:
<html>
<head>
<title>Where to go play basketball?</title>
<style type="test/css">
table {
background-color: #FCF;
}
th {
width:150px;
text-align:left;
}
</style>
</head>
<body>
<h1>Venue Search</h1>
<form method="post" action="search.php">
<label> Search Criteria: <input type="text" name="term" /></label>
<input type="submit" name="submit" value="Submit" />
</form>
</body>
</html>
这是search.php:
<?php
mysql_connect ("localhost", "root","*****", "baskt_venues") or die (mysql_error());
$term = $_POST['term'];
$sql = mysql_query("SELECT * FROM complete_table WHERE country LIKE $term")or die('error getting data');
while ($row = mysql_fetch_array($sql, MYSQLI_ASSOC)){
echo '<br/> Country: '.$row['country'];
echo '<br/> Date: '.$row['date'];
echo '<br/> Time: '.$row['time'];
echo '<br/><br/>';
}
?>
感谢大家花时间看这个。
答案 0 :(得分:1)
您需要在SQL中添加$term
附近的引号。
$sql = mysql_query("SELECT * FROM complete_table WHERE country LIKE '$term'") ...
您可能还想在其周围添加%符号,以便搜索返回包含搜索条件而非精确匹配的国家/地区。
$sql = mysql_query("SELECT * FROM complete_table WHERE country LIKE '%$term%'")
编辑:
刚才意识到mysql_connect
的第四个参数不是数据库的名称。
连接后,您需要致电mysql_select_db
:
mysql_connect("localhost", "root","*****") or die(mysql_error())
mysql_select_db("baskt_venues") or die(mysql_error())
答案 1 :(得分:0)
是的,您需要添加%符号和引号,但您还需要与$ term的内容连接,这样您就不会与'$ term'进行比较。所以看起来你需要以下内容:
"SELECT * FROM complete_table WHERE country LIKE '%" + $term + "'"