First:
Use the SQL distinct command.. it's explained here:
http://www.mysql.com/doc/en/SELECT.html
That will get you unique values.
Then just loop through the result:
while ($d = mysql_fetch_assoc($return)) {
?><option value="<?=$d['value']?>"><?=$d['name']?></option>
<?
}
Second:
get the value from the other table into a variable, during each iteration of
the loop check to see if they match, if so add 'selected'.
while ($d = mysql_fetch_assoc($return)) {
?><option value="<?=$d['value']?>"<?
if ($other_table_value == $d['value'])
echo " selected";
?>><?=$d['name']?></option>
<?
}
Third:
If you're using MySQL, check this out:
http://www.mysql.com/doc/en/Fulltext_Search.html
If you're using something else, it's more complex I think. Someone may have an
elegant solution, but I would do something like:
// Get total number of keywords:
$numofkeywords = count(str_replace ( " ", " ", $keywords));
// Split up your search words:
$search = explode(" ", $keywords);
$total_matched = 0;
// loop through the array of search terms and get number of returns.
foreach ($search as $searchword) {
$total_matched += count(str_replace($searchword, $searchword, $keywords));
}
// echo out the result in percent. (to one decimal place even!)
echo "Percent Matched: ".round(($total_matched/$numofkeywords)*100), 1)." %";
I'm sure there's a better way to get a word count from a string, but it's
late.. I didn't try the above code, so I'm just guessing it works.. I think
it's the right idea though.
-Micah
On Mon October 27 2003 4:54 pm, Shannon Doyle wrote:
> Hi People,
>
> I have a three part question here. Well actually its 3 separate
> questions.
>
> First.
>
> How would I populate a select menu from a mysql databse with the entries
> from a particular field, but only showing those that are unique, ie not
> showing more than 1 of the same value.
>
> Second.
>
> How would I then have one of those options selected depending on what it
> contained in another table?
>
>
>
> Third.
>
> I need to understand how the following would be achieved.
>
> In the database there is a text field that contains a number of
> 'keywords' I need to be able to search through those individual keywords
> and return results based on a % match from the original search. Ie if I
> search for 'secretary, typing, customer relations' I need to return all
> records from the database that has one or all of those words contained
> in the text field and display them as a % match of that search, ie if 1
> match then 33% 2, 66% and so on.
>
> Any help on the above three would be fantastic.
>
> Cheers,
>
> Shannon
--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php