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}";
/* Data in Array */
$array_name = array("gum.cn","lol.com","ns1.blar.com","test.com","web.cn");
/* Join array elements into a string with separator (whitespace) " " */
echo $string = implode(" ", $array_name);
// output: gum.cn lol.com ns1.blar.com test.com web.cn
/* replace separator (whitespace) " " with "%' OR '%" */
echo $string = str_replace(" ", "%' OR '%", $string);
// output: gum.cn%' OR '%lol.com%' OR '%ns1.blar.com%' OR '%test.com%' OR '%web.cn
/* Insert into query sql */
$tank = "SELECT url FROM `PHP`.`db` WHERE url LIKE
'%$string%'
";
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With