2012-11-03 58 views
0

我試圖匹配我的MySQl數據庫中的配置文件,並將名稱和技能集放入我的可丟棄div,See HERE。我遇到兩個問題,一個是錯誤mysql_fetch_array() expects parameter 1 to be resource, boolean given,我相信這意味着我的查詢返回false。這帶我到另一個問題,我的$數據不匹配任何東西。我如何將放入div的名稱和技能與數據庫中的名稱和技能相匹配?使用LIKE與返回的AJAX數據的查詢不匹配

if (isset($_POST['data'])){ 
$data = $_POST['data']; 

$query = mysql_query("SELECT * FROM gradesheet WHERE 'firstname','lastname','grade' LIKE '{$data}'"); 

    while($row=mysql_fetch_array($query)){ 
      $firstname=$row['firstname']; 
      $lastname=$row['lastname']; 
      $gradet=$row['grade']; 
      $user_id=$row['user_id']; 

echo $firstname; 

我用%Like%想它會給我比MATCH AGAINST更好的機會。我會很感激任何知識或想法更好地匹配我的查詢,並讓它返回一些東西。以及一般的任何提示。

+0

您的代碼非常不安全。如果你還沒有註冊,你將會被黑客入侵。學習如何使用PDO或類似的準備好的查詢。 – Brad

+0

感謝您的建議@Brad! – Octavius

回答

2

您需要爲WHERE聲明中的每個列執行LIKE,然後選擇ANDOR將它們放在一起。百分號%是通配符。

SELECT * FROM gradesheet 
WHERE 'firstname' LIKE '%term%' 
    OR 'lastname' LIKE '%term%' 
    OR 'grade' LIKE '%term%' 

你也應該避免使用mysql_* PHP擴展,因爲他們已經deprecated;改爲使用PDOmysqli。除了使用不推薦的擴展之外,您的代碼也可以廣泛用於SQL注入攻擊。您應該始終過濾來自請求變量的數據,然後再將其粘貼到查詢中。

+0

非常感謝你! @doublesharp在PDO或mysqli上知道任何好的教程? – Octavius

+0

答案中的「PDO」和「mysqli」文本都與包含示例的文檔相關聯,但我不知道有任何優秀的教程脫離了我的頭頂 - 我相信Google可以提供幫助;) – doublesharp

+0

好的,我真的很感謝幫助! – Octavius

相關問題