2013-03-06 147 views
1

我是一名php新手,我试图让这个表单正常工作,但是当我运行我的查询时,我得到一个“错误获取数据”。 对此的任何帮助将是太棒了!获取数据出错 - 从数据库检索数据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/>'; 
} 

?> 

感谢大家花时间来看看这个。

回答

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%'")

编辑:

刚刚意识到第四paramater到mysql_connect未命名的数据库。 您需要mysql_select_db连接呼叫后:

mysql_connect("localhost", "root","*****") or die(mysql_error()) mysql_select_db("baskt_venues") or die(mysql_error())

+0

甚至当我更换,我得到“错误获取数据” :( – 2013-03-06 15:37:25

+0

的SQL现在看来很好,但我们需要在错误的详细信息请尝试更换。 ''或死('错误获取数据')''用'或死(mysql_error())'来判断实际的错误是什么 – jlundqvist 2013-03-06 15:43:02

+0

jlundqvist,@zukanta,非常感谢你的帮助,现在有效。 (“localhost”,“root”,“password”,“wcs_venues”)或者die(mysql_error())。这是一个非常有用的帮助!我真的很感激它! – 2013-03-06 16:17:00

0

是的,你需要添加%符号和引号,但你也需要用$长期的内容来连接,这样你就不能比拟'$术语'。所以看起来你需要的东西线:

"SELECT * FROM complete_table WHERE country LIKE '%" + $term + "'" 
+0

所以现在我有这个 '<?php mysql_connect ; $ term = $ _POST ['term']; $ sql = mysql_query(“SELECT * FROM complete_table WHERE country LIKE'%”+ $ term +“'”)or die('error getting data'); ($ row = mysql_fetch_array($ sql,MYSQLI_ASSOC)){ echo'
国家:'。$ row ['country']; echo'
Date:'。$ row ['date']; echo'
Time:'。$ row ['time']; echo'

'; } ?>' 但我仍然得到‘错误获取数据’... :( – 2013-03-06 15:35:05

+0

级联是没有必要的,因为PHP将扩大在duoble引用的字符串变量。 – jlundqvist 2013-03-06 15:35:08

+0

感谢jlundqvist,现在你知道我从来没有使用PHP在LOL之前!Gees一些奇怪的东西,某些语言做... – zukanta 2013-03-06 15:56:14