2011-12-02 72 views
1

我想构建一个搜索系统。我使用了一个mySQL系统,但我没有什么经验,我不太明白。PHP SQL搜索系统

  • 我想现场的数据库名为POST_TITLE进行搜索,然后获取URL,日期
  • 我也希望能够通过标签进行搜索。为此,我们需要加入表wp_term_relationships,这将为我们提供一个包含帖子ID的列和一个包含标签ID的列。由此我们可以确定哪些标签适用。

我尝试用凄惨致命错误

<?php 

$proto = $_GET['proto']; 
$terms = $_GET['f']; 

if($proto == 'inline'){ 

    $searchpattern = mysql_real_escape_string(strtoupper($terms)); 

    $list = mysql_query("SELECT id, 
      post_title, post_date 
FROM  wp_posts 
WHERE  post_title LIKE '%$searchpattern%' 
) 
    ORDER BY post_date;"); 

while ($row = mysql_fetch_array($list)) { 
    $title = $row['post_title']; 
    $date = $row['post_date']; 
    $url = $row['guid']; 

    $date = date($date, 'd M Y'); 

    $return .= '<li> 
       <a href="#sidebar3" onClick="slide(this); return false" title="" rel="'.$id.'" style="line-height:16px;">'.$firstname.' '.$lastname.'<br /><span style="font-size:10px; color:#555;">'.$email.'</span></a> 
      </li> 



      <div class="title"><b>SEARCH RESULTS</b></div> 
    <a href="'.$url.'"><img src=""/>'. $title .' - <span>'. $date .'</span></a>'; 

} 

} 

?> 
+0

致命错误说的是什么? –

+0

你能复制/粘贴错误吗?另外,为什么你的查询中有一个括号“)”? – jValdron

回答

1
$list = mysql_query("SELECT id, post_title, post_date 
FROM wp_posts 
WHERE post_title LIKE '%$searchpattern%') ORDER BY post_date;"); 

你有意外的 “)” 前的 “订单” 操作失败。

+0

答案的第二部分不正确。只要整个查询使用双引号,只要在搜索模式中保留单引号即可。 – jjs9534

+0

@ jjs9534谢谢你纠正我:) – hungneox

0

在ORDER BY之前有一个开放的括号。也许这就是导致问题的原因

+0

关闭支架... – MatBailie