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