PHP - strstr()与MySql不兼容

时间:2011-07-19 13:51:46

标签: php strstr

我的数据库中有这些表格:

表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 />';
        }
    }
}

但是,它不起作用。我试着整天想出来,但没有机会。我需要提一下干草堆和针柱是变形金刚。

你能帮我解决这个问题吗? 提前谢谢!

3 个答案:

答案 0 :(得分:1)

注意strlen(strstr($row_A['haystack'], $row_B['needle']) > 0)

上的括号位置

尝试:if(strlen(strstr($row_A['haystack'], $row_B['needle'])) > 0)

您在> 0

的电话中加入了strlen

答案 1 :(得分:1)

为什么不把它全部放在SQL服务器上?更容易,更快..

SELECT * from hay, needle WHERE hay.haystack LIKE CONCAT('%',needle.needle,'%');

答案 2 :(得分:0)

试试这个:

$res_A = mysql_query('SELECT haystack FROM table_A');
while($row_A = mysql_fetch_array($res_A)){
    $res_B = mysql_query("SELECT needle FROM table_B WHERE needle = '" . $row_A['haystack'] . "'");
    if(mysql_num_rows($res_B) > 0) {  
            echo 'I found this needle: '.$row_B['needle'].' in this haystack: '.$row_A['haystack'].'<br />';
    }
}