> If the keywords inputted from user are: "word2, word1", it
> will reture News1 twice:
That's because you are selecting all the records that match
each single key word individually.
> I want to search this table based on the Keywords. the code is:
> $split = explode(" ",$keywords);
> $Num = 0;
> for($index=0;$index<count($split);$index++){
> $sql = "SELECT * FROM News WHERE Keywords LIKE '%$split[$index]%';
> $result = mysql_query($sql) or die(mysql_error());
> while($myrow = mysql_fetch_array($result)){
> $Num = $Num +1;
> $NewsID = $myrow["NewsID"];
> $News = $myrow["News"];
> echo $Num . ". " . $News . "<br>";
> }//end while
> }//end for
What you want to do is something like this:
$keyWordsArray = explode( " ", $keywords );
$keyWordsString = implode( "%\" OR \"%", $keyWordsArray );
$sql = "SELECT * FROM News WHERE Keywords LIKE \"$keyWordsString\"";
to make one query that will select all the records with matching keywords.
Depending on what you are exploding on, you could use str_replace()
instead of explode() then implode().
Chris