multiple search

From: Date: Mon, 22 Jul 2002 11:30:27 +0000
Subject: multiple search
Groups: php.general 
Request: Send a blank email to php-general+get-108847@lists.php.net to get a copy of this message
My question is what can I do if someone searches for php script for search? I would want to use OR in my SQL statment. The problem is how do I write the query so that it will detect the number of words sent then put enough ORs and LIKE '%$search[1]% in? Thanks. Here is the script. <? include "includes/required.php"; $query = " SELECT count(article_keyword.weight) as score, article_keyword.aid, article_data.name, article_data.time, article_data.description FROM article_keyword,article_data WHERE article_keyword.aid = article_keyword.aid AND article_keyword.keyword LIKE '%$search%' GROUP BY article_keyword.aid ORDER BY score DESC "; $result = mysql_query($query) or die("Query failed: $query<br>" . mysql_error()); $num_results = mysql_num_rows($result); if($num_results == 0){ echo "Your search returned no results. Try other keyword(s)."; exit; } elseif($num_results > 0){ for ($i=0; $i < $num_results; $i++) { $row = mysql_fetch_array($result); echo '<tr><td>'; do_hr(); echo '<a href="full_article.php?aid='.$row['aid'].'">'; do_h($row['name'].' - '.date('jS-M-Y',$row['time']), 3, 'n'); echo '</a>'; echo '</td></tr><tr><td>'.$row['description']."\n"; echo '</td></tr>'; } } ?> "Jj Harrison" <webmaster@tececo.com> wrote in message news:20020722094736.45493.qmail@pb1.pair.com... > To add search functionality I decieded this was the best table structure I > could come up with for a keywords table. > > Here it is: > > CREATE TABLE article_keyword ( > aid int(11) unsigned NOT NULL default '0', > keyword char(50) NOT NULL default '', > weight tinyint(2) unsigned NOT NULL default '0', > PRIMARY KEY (aid), > KEY keyword (keyword), > KEY aid (aid), > KEY weight (weight) > ) TYPE=MyISAM; > > Using that structure could I get a decent search? > > I would probably add up the weight for each keyword(Where it is searched > for). Then sort it by the most 'relevent' then I could use a join to get the > title, time etc of the article and return the results. > > What I am asking is that if this is a good table structure for something > like this(N00B alert!). If not could you please give me a better one? > > > -- > JJ Harrison > webmaster@tececo.com > www.tececo.com > > > >

« previous php.general (#108847) next »