0

我正在尝试将一个表中具有特定描述的用户与另一个表中的一般搜索描述进行匹配。我有一个包含一般描述的 foreach,并在 foreach 中创建了一个查询,希望提取出最适合该一般描述的用户。

问题是当我回显username. 当我回显结果 ['title'] 时,我得到了结果。

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>';
  }

}

我很高兴知道为什么我的用户没有得到回应。此外,任何编程技巧都将不胜感激,因为我一直在学习,我总是想找到改进的方法。

4

3 回答 3

1

您需要在查询中将 $results 替换为 $result:

$query = mysql_query("SELECT username, title from clothing WHERE description LIKE '%$result%'");
于 2012-10-25T13:25:19.800 回答
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>';
                    }
               }

           }
于 2012-10-25T13:26:41.683 回答
0
SELECT username, title from clothing WHERE description LIKE '%$results%'

$results,它似乎是一个数组。我想你必须在$result这里使用。

于 2012-10-25T13:28:42.190 回答