2012-10-25 91 views
0

我試圖將用戶與一個表中的特定描述匹配到另一個表中的一般搜索描述。我有一個包含一般描述的foreach,並在foreach中創建了一個查詢,希望能夠抽出最適合該一般描述的用戶。在foreach內查詢時沒有結果

問題是我沒有得到任何結果,當我呼應username。當我回應結果['標題']時,我會得到結果。

if (empty($errors)){ 
    $results = search_results($keywords); 
    $results_num = count($results); 

    echo '<p><strong style ="font-size:145%;font-family:georgia;"> Titles: </strong></p> '; 

    foreach ($results as $result){ 
    $query = mysql_query("SELECT username, title from clothing 
    WHERE description LIKE '%$results%'"); 
    while($row=mysql_fetch_array($query)){ 
    $username=$row['username'];      
    $title=$row['title']; 
    echo $username; 
    } 
    echo '<p> <strong>',$result['title'],'</strong> </p>'; 
    } 

} 

我將非常感激知道爲什麼我的用戶是沒有得到迴應的。此外,任何編程技巧都將不勝感激,因爲我一直在學習,我總是想方設法改進。

+0

爲什麼你看不到該查詢是否返回任何內容。就像在SQL工具中對數據庫運行一樣。 – wesside

+0

foreach(...)上的$ result返回值是什麼? – phpisuber01

+0

你確定你的查詢返回> = 1rows? –

回答

1

您需要在您的查詢,以取代$結果$結果:

$query = mysql_query("SELECT username, title from clothing WHERE description LIKE '%$result%'"); 
0

嘗試設置一個檢查(使用錯誤消息)如果計數等於0 .. 和LIKE子句值必須引起不結果

if (empty($errors)){ 
       $results = search_results($keywords); 
       $results_num = count($results); 

       if($results_num==0) { 
        echo "NO RESULTS MESSAGE !!!"; 
       } 
       else{ 

        echo '<p><strong style ="font-size:145%;font-family:georgia;"> Titles: </strong></p> '; 

        foreach ($results as $result){ 
         $query = mysql_query("SELECT username, title from clothing WHERE description LIKE '%$result%'"); 
         while($row=mysql_fetch_array($query)){ 
         $username=$row['username'];      
         $title=$row['title']; 
         echo $username; 
         } 
         echo '<p> <strong>',$result['title'],'</strong> </p>'; 
        } 
       } 

      } 
0
SELECT username, title from clothing WHERE description LIKE '%$results%' 

$results,這似乎是一個array.I認爲你必須在這裏使用$result