でうまく動作しません:PHP - はstrstr()私は私のDBにこれらのテーブルを持っているのMySQL
表A:
id | haystack
-------------
1 | 682,401
2 | 351
表B:
id | needle
-------------
1 | 352
2 | 682
3 | 978
私が欲しいのテーブルAからの干草がテーブルBの針を含んでいるかどうかを確認することです。私はこのコードをPHPで行いました:
$res_A = mysql_query('SELECT * FROM table_A');
while($row_A = mysql_fetch_array($res_A)){
$res_B = mysql_query('SELECT * FROM table_B');
while($row_B = mysql_fetch_array($res_A)){
if(strlen(strstr($row_A['haystack'], $row_B['needle']) > 0)){
echo 'I found this needle: '.$row_B['needle'].' in this haystack: '.$row_A['haystack'].'<br />';
}
}
}
しかし、動作しません。私は一日中それを理解しようとしましたが、チャンスはありません。私は干し草と針の柱がVarcharsであることを言及する必要があります。
この状況で私を助けることができますか? ありがとうございます!
意味は何を「それは動作しません」ん?何が起こった?あなたは何を期待しましたか? – KingCrunch
1つは、 'strstr'を使うのは良い考えではありません。 (もしneedleに52が入っていてもhaystackに252があるとしたら?)haystackの[explode'](http://php.net/manual/en/function.explode.php)メソッドを使い、[' in_array'](http://us3.php.net/manual/en/function.in-array.php)を針で置き換えてください。 –
table_a.hidstackにtable_b.needleを含むtable_a.idが表示されることを期待していました(私がはっきりしていることを望みます)。はい、strstrは良い考えではないようですので、代わりにsqlを使用しました。はるかに簡単で高速です。 – Cosmi