Mysql中的数组在哪里? [英] Array in Mysql WHERE LIKE?

查看:44
本文介绍了Mysql中的数组在哪里?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要使用数组列表进行 SELECT.$array_name 包含:

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);而 ($jwp = mysql_fetch_array($result1)){回声 $jwp['url'];echo "
";}

为什么上述方法不起作用?我搜索其他示例,问题是在不使用 LIKE 子句的情况下提问,因此没有解决方案.请帮忙,提前致谢.

解决方案

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

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

您必须稍微修改您的查询:

$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}";

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中的数组在哪里?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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