user3714179
user3714179

Reputation: 49

search array of words in database

I have text :

$a = I wanna eat apple , and banana .

I wanna get every words and punctuation of that sentence :

$b = explode(' ', strtolower(trim($a)));

the result of explode is array. I have a words table on db that has fields :

id, word and typewords
all in lowercase. but for punctuation there are no exist in db. I wanna search every words in db to take the type of words, so the final result that i want to get is : words/typeofwords =
I/n wanna/v eat/v apple/n ,/, and/p banana/n ./.
here's the code :

function getWord ($word){
$i = 0 ;
$query = mysql_query("SELECT typewords FROM words WHERE word = '$word' ");
    while ($row = mysql_fetch_array($query)) {
         $word[$i] = $row['typewords'];
        $i++;
    }
    return $word;
}

echo $b.'/'.getWord($b);

but it doesn't work, please help me, thanks !

Upvotes: 0

Views: 142

Answers (3)

clami219
clami219

Reputation: 3038

Try with this:

function getWord($words){
    $association = array();
    foreach($words as $word)
    {
        $query = mysql_query("SELECT typewords FROM words WHERE word = '$word' ");
        if($row = mysql_fetch_array($query)) 
            $association[$word] = $row['typewords'];
        elseif(preg_match('/[\.\,\:\;\?\!]/',$word)==1)
            $association[$word] = $word;
    }
    return $association;
}

$typewords = getWord($b);
foreach($b as $w)
    echo $w.'/'.$typewords[$w];

Upvotes: 1

Alex Monthy
Alex Monthy

Reputation: 1877

You assume the function parameter to be an array, but it is a string.

Edit: In your function you treat $word as an array as well as a string. Decide what you want and recode your function.

Upvotes: 0

sugapablo
sugapablo

Reputation: 320

function getWord($word){

    // concat the word your searching for with the result
    // http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_concat
    $query = mysql_query("SELECT CONCAT(word,'/',typewords) as this_result FROM words WHERE word = '$word' ");
    $row = mysql_fetch_array($query);
    return $row['this_result']." ";  // added a space at the end.
}

// loop through the $b array and send each to the function
foreach($b as $searchword) {
    echo getWord($searchword);
}

Upvotes: 0

Related Questions