2016-09-29 16 views
0

検索バーのすべての出現箇所を見つけるためにphp配列を使用するsqlリクエストがあります。配列内の要素と行を一致させる

私はこれを行うことができません。これは私のコードです:

+0

request_objを、私はフランス人だ – scaisEdge

+0

をrequete_objない、これは私が作ったデータベースのクラスがあります。 –

+0

プレースホルダを使用しているため、プレースホルダ自体以外のものを置く必要はありません。つまり、一重引用符を削除します: '' '。 PDOを使用しているので、おそらく、それがあなたの引用を処理します。 – tadman

答えて

1

あなたのforeach-loopは、値によって渡される(実際にはコピーを意味する)ので実際には変数を変更しません。 それらを修正するために、あなたが参照渡しする必要があります。

foreach ($texte as &$value) { 
    $value = "%".$value."%"; 
} 

そのように、あなたの配列の実際の値が操作されています。

secondly:データベースにパラメータとして配列を与えることはできません。代わりに、配列をループすることができます。あなたが最初のループでそれを実装する場合、あなたももう参照を使用する必要はありません。

$sql = "SELECT * FROM PROXIMITE WHERE titrefr LIKE :texte"; 
foreach ($texte as $value) { 
    $value = "%".$value."%"; 
    $req = $bd->requete_obj($sql, array('texte'=>$value)); 
    while($select = $req->fetch()){ 
     error_log('Test'); 
    } 
} 
+0

PHPの注意:配列から文字列への変換 –

+0

ありがとうございました! :)) –

+1

あなたは歓迎ですが、データフローの再構築について考えるべきです。すべての単語に対して1つのクエリを実行するだけでは効率的ではありません。 –

関連する問題