2013-02-27 115 views
-5

我的程序在這裏有什麼問題?我似乎無法工作「找不到的單詞」? :/PHP MYSQL QUERY VALIDATION

echo "<form action='#' method='post'>"; 
echo "Search word here: <input type='text' name='search'>"; 
echo "<input type='submit' name='searchword' value='Search'>"; 
echo "</form>"; 
if(isset($_POST['searchword'])){ 
    $word = $_POST['search']; 
    $result = mysql_query("SELECT * FROM positivethesaurus where word like '%$word%'"); 
    while($row = mysql_fetch_array($result)){ 
    echo $row['word']."<br>"; 
    } 
    if($row = mysql_fetch_array(!$result)){ 
     echo "word not found"; 
    } 
} 
+1

[**請不要在新代碼中使用'mysql_ *'函數**](http://bit.ly/phpmsql)。他們不再被維護[並被正式棄用](https://wiki.php.net/rfc/mysql_deprecation)。看到[**紅框**](http://j.mp/Te9zIL)?學習[*準備的語句*](http://j.mp/T9hLWi),並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [這篇文章](http://j.mp/QEx8IB)將幫助你決定哪個。如果你選擇PDO,[這裏是一個很好的教程](http://j.mp/PoWehJ)。 – 2013-02-27 12:45:53

+0

僅供參考,您也可以通過[SQL注入](http://stackoverflow.com/q/60174) – 2013-02-27 12:46:31

+0

@ F4r-20感謝編輯(:im新到此 – troubledone 2013-02-27 12:52:58

回答

0

詞也許是一個保留期限,試試這個

"SELECT * FROM positivethesaurus where `word` like '%$word%'" 
+0

好主意,但'詞'不是[保留字](http:///dev.mysql.com/doc/refman/5.5/en/reserved-words.html) – George 2013-02-27 12:49:20

1

你的帖子值是錯誤的。更改爲,

$word = $_POST['searchword']; 

從,

$word = $_POST['search']; 
+0

它仍然不工作這裏的錯誤警告:mysql_fetch_array()期望參數1是資源,布爾在C:\ wamp \ www中給出\ EIMS \ searchbypositive.php 25行 – troubledone 2013-02-27 12:51:50

+0

@troubledone僅當您的查詢返回false時纔會出現此錯誤。檢查你的查詢是否返回任何結果。 – 2013-02-27 12:53:07

+0

明白了:)!我應該把我的感嘆號或null的行放在這個!$ row:D – troubledone 2013-02-27 12:56:57

3

我認爲你的價值有錯誤的字段名

$word = $_POST['search']; 

分配給$word應該

$word = $_POST['searchword']; 

我只是克因爲您正在檢查是否使用此字段名稱進行設置。

我希望它能幫助你。

+0

searchword name是我的提交名稱 – troubledone 2013-02-27 12:52:31