2011-12-22 92 views
0

我收到提示在此:代碼錯誤的搜索查詢

推薦使用:功能分割()已被棄用在C:\ XAMPP \ htdocs中\ TET \上線search_motifasni2.php 10

注意:未定義變量:sql在C:\ xampp \ htdocs \ tet \ search_motifasni2.php上在線18

警告:mysql_num_rows()期望參數1是資源,布爾值在C:\ xampp \ htdocs \ tet \ search_motifasni2.php 32行 doc與術語:

代碼:

if (isset($_POST['Submit'])) 
{ 

     //retrieve search word, trim, remove duplicate 
     $find = $_POST['find']; 
     $find = ltrim($find); 
     $find = rtrim($find); 
     $find = split(" ",$find);//line 10 
     $find = array_unique($find); 

。 。 。

 if($val<>" " and strlen($val)>0) 
     { 
      $sql .=" Terms = '$val' or";//line 18 
     } 
    } 

。 。 。

$query = "SELECT * FROM document"; 
    $result = mysql_query($query); 
    $num = mysql_num_rows($result);//line 32 

嘗試了很多方法,但在搜索查詢時仍然得到相同的結果。

+0

一件事看起來你可以替換拆分(不推薦使用的功能)與explode ..關於$ val ..我們無法從您提供的代碼中看到它應該有什麼價值..無論$ sql或$查詢.. – mishu 2011-12-22 08:37:26

+1

可能重複的[mysql_fetch_array()期望參數1是資源,布爾在選擇](http://stackoverflow.com/questions/2973202/mysql-fetch-array-expects-parameter-1-to-be-resource-boolean-given-in-select) – jmort253 2012-07-31 02:49:54

+0

可能重複的[Warni ng:mysql_fetch_ *期望參數1是資源,布爾給定錯誤](http://stackoverflow.com/questions/11674312/warning-mysql-fetch-expects-parameter-1-to-be-resource-boolean-given-錯誤) – j0k 2012-07-31 07:53:14

回答

1

首先,split已棄用:請改爲使用explode。 (像這樣:$find = explode(' ', $find);這是基本相同的) 另外,你同時使用ltrimrtrim,我認爲你也可以使用trim,兩者兼而有之。

第二個錯誤是因爲您使用的$sql變量尚未在第18行中定義,所以您無法將字符串連接到尚未定義的變量(實際上您可以,因爲php非常謙虛,但這不是很好) 它可以通過$sql = '';之前if聲明輕鬆解決。

最後一個錯誤的意思是mysql_num_rows得到false作爲參數,而它需要一個mysql資源。 $result爲假,因此mysql_query返回false,在執行查詢時發生錯誤時會執行此操作,請參閱here。您的表document是否存在?

+0

感謝,分裂和$ sql現在解決。是的,我的表格文件是存在的。 – Fhzwn 2011-12-22 08:44:43

+0

用'$ result = mysql_query($ query)或die(mysql_error())'替換'$ result = mysql_query($ query);',它會給你一個更具描述性的錯誤。描述性的東西讓我們更容易幫助你:) – 2011-12-22 08:49:15

+0

謝謝@reanimation,發現問題的原因,但現在我得到無關的結果。 – Fhzwn 2011-12-22 09:10:58

2

推薦使用:功能分割()被棄用 C:\ XAMPP \ htdocs中\ TET \第10行

如所述search_motifasni2.php,分流depricated,使用explode代替

說明:未定義變量:SQL在 C:\ XAMPP \ htdocs中\ TET \上線search_motifasni2.php 18

您還沒有初始化的變量$sql某處此代碼之前,你應該初始化$ sql中爲空字符串或東西

警告:mysql_num_rows()預計參數1是資源,在C布爾 給出: \ XAMPP \ htdocs中\上線32 DOC TET \ search_motifasni2.php與 項:

至於說,要傳遞到mysql_num_row請求mysql_query結果是一個布爾值,你應該添加更多的相關代碼才能到這個底部...

編輯:從mysql_query($query)的結果是錯誤的,你的查詢有問題,你的MySQL用戶有權訪問數據庫或表?

+0

謝謝!現在解決了mysql_query結果問題。 – Fhzwn 2011-12-22 09:06:27

+0

來自'mysql_query($ query)'的結果是錯誤的,您的查詢有問題,您的mysql用戶是否有權訪問數據庫或表? – ChrisR 2011-12-22 09:22:53

+0

我編輯了第一篇文章,並提供了代碼與mysql_query($查詢)。 – Fhzwn 2011-12-22 09:26:15

0

爲了使用$sql .= ...;'你必須首先通過$sql = '';來定義它。並使用除分割之外的其他功能。可能mysql_query失敗並返回false,