2016-05-03 7 views
0

から特定の要素を取り除くことができないので、小さな問題があります。私は配列にmysqlからデータを保存したいと思うし、その配列の特定の単語を検索し、見つかったかどうかを検索したい、私は非常に多くの方法で試してきましたが、まだ成功していません。見つかりました "。 array_searchとforループを試してみました。私は何が欠けていますか?あなたのケースではmysqlの配列

<?php 

include("conn.php"); 
$keyword = "universidade"; 

$row = array(); 
$result = mysql_query("SELECT keywords FROM beta_universidades"); 

while ($data = mysql_fetch_assoc($result)) { 
    $row[] = $data; 
} 

echo "<br><br>"; 

$chave = in_array($keyword, $row); 

if ($chave !== false) { 
    echo "word found"; 
} else { 
    echo "word not found"; 
} 
+0

なぜ.. DB検索をしているのですか? 'keywords = '$ escaped_var''、または' like'を使用してbeta_universidadesからキーワードを選択してください。また、パラメータ化されたクエリを使用できるようにドライバを更新する必要があります。 – chris85

答えて

0

while($data = mysql_fetch_assoc($result)) 
{ 
    $row[] = $data['keywords']; 
} 
+0

それはうまくいったが、なぜ[in_array()](http://php.net/manual/en/function.in-array.php)がそうでないので、私がmysqlクエリ – eternaty

+0

を入れた場合、なぜ 'キーワード'多次元配列のために働くので、 '$ data ['keywords']'を使用し、完全な '$ data'配列の代わりに' $ row'にキーワード値のみをプッシュする理由は... @eternaty –

+0

あなたは受け入れることができ、役に立った回答... :) @eternaty –

1

あなたが何かしようとする必要がありますので$rowは、配列の配列である:あなたの$data配列でキー'keywords'を使うのを忘れていました

foreach ($row as $myKeywords) { 
    $chave = in_array($keyword, $myKeywords['keywords']); 

    if ($chave !== false) { 
     echo "word found"; 
     break; 
    } 
}