阵列在MySQL WHERE样? [英] Array in Mysql WHERE LIKE?

查看:127
本文介绍了阵列在MySQL WHERE样?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要数组列表选择。 $ ARRAY_NAME 包含:

 阵列([0] => gum.cn [1] =方式> lol.com [2] => ns1.blar.com [3] => test.com [4] => web.cn.)


  

的print_r($ ARRAY_NAME);

  $字符串=破灭('',$ ARRAY_NAME);
    $罐=SELECT网址FROM`PHP`.`db`其中URL LIKE'%{$}字符串%';
    $ RESULT1 =的mysql_query($罐);
      而($ JWP = mysql_fetch_array($ RESULT1))
      {
      回声$ JWP ['URL'];
      回声< BR>中;
      }


为什么不把上面的工作?我搜索其它的例子,这个问题是问不使用 LIKE 子句,以便无解那里。请帮帮忙,先谢谢了。


解决方案

它不起作用,因为您的查询将扩展到:

 选择URL FROM`PHP`.`db`其中URL LIKE'%gum.cn,lol.com,ns1.blar.com ...%

您必须修改您的查询一点:

  $ query_parts =阵列();
的foreach($ ARRAY_NAME为$ VAL){
    $ query_parts [] =%mysql_real_escape_string($ val)的%。'
}$字符串=破灭('或URL LIKE',$ query_parts);$罐=SELECT网址FROM`PHP`.`db`其中URL如{$字符串};

I need to SELECT with array list. $array_name contains:

Array ( [0] => gum.cn [1] => lol.com. [2] => ns1.blar.com [3] => test.com [4] => web.cn. )

print_r($array_name);

  $string = implode(',',$array_name);


    $tank = "SELECT url FROM `PHP`.`db` WHERE url LIKE '%{$string}%'";
    $result1 = mysql_query($tank); 
      while ($jwp = mysql_fetch_array($result1)) 
      {     
      echo $jwp['url']; 
      echo "<br>"; 
      }

Why don't the above work? I search other example and the question is asking without using LIKE clause so no solution there. Please help, thanks in advance.

解决方案

It doesn't work because your query will expand to:

SELECT url FROM `PHP`.`db` WHERE url LIKE '%gum.cn,lol.com.,ns1.blar.com...%'

You have to modify your query a little:

$query_parts = array();
foreach ($array_name as $val) {
    $query_parts[] = "'%".mysql_real_escape_string($val)."%'";
}

$string = implode(' OR url LIKE ', $query_parts);

$tank = "SELECT url FROM `PHP`.`db` WHERE url LIKE {$string}";

这篇关于阵列在MySQL WHERE样?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆