结合阵列PHP
HELLO结合阵列PHP
SORRY法语,我会尝试英语 我有树阵这样
$keys = array("elment1","elment1","elment2","elment1");
// this one can have duplicates values ,
$operator = array("=","<",">","=");
// operators for Mysql query
$queries = array("query1","query2","query3","query4");
// mixtes values
的问题是:
我怎么能结合这棵树阵列像这样:
$string = "SELECT FROM tables
WHERE
(elment1 = query1 OR elment1<query2 OR elment1=query4)
// need group duplicates keys
AND
elment2 > query3";
// non duplicates
我为什么要问,因为我需要S代表的多查询filtres
用户按下一个(+)按钮添加键+运算+查询许多时间,因为他喜欢
我使用jQuery创建形式的元件,并且每一个()函数生成3个阵列 所有张贴到PHP
如果有人知道一个最好的方法则欢迎前非常感谢你
卓悦,
这里是代码。尝试和测试。 Voila le code ... essayer avecsuccé
$keys = array("elment1","elment1","elment2","elment1");
// this one can have duplicates values ,
$operator = array("=","<",">","=");
// operators for Mysql query
$queries = array("query1","query2","query3","query4");
// mixtes values
$joined = array();
for($i = 0, $size = sizeof($keys); $i < $size; ++$i)
{
$joined[$keys[$i]][] = $keys[$i] . $operator[$i] . $queries[$i];
}
foreach ($joined as $key => &$value)
{
$value = implode(' OR ', $value);
$value = "(" . $value . ")";
}
$query = implode(' AND ', $joined);
print $query;
关注le代码“foreach($加入为$ key =>&$ value)”avant $ value il y a“&”。 cela remet la valeurattachédans $ joined。 在$ value前面有一个'&',它将这个值存储回数组$ join。 – Anand 2010-08-07 07:08:31
使用“查看源文件”查看实际的输出..在“”的招牌隐藏在浏览器 – Anand 2010-08-07 07:16:01
字符串太感谢你了阿南德,这个工作非常 我和随机阵列进行测试,这只是工作 感谢 – cranberies 2010-08-07 14:44:39
你问法国的一个问题,我会在英语答案,你可以使用谷歌如果您需要翻译,请翻译。首先,你需要连接这些部分。首先,你需要连接这些部分。[编辑]请注意0,这使整个操作更安全一些。
$joined = array();
for($i = 0, $size = sizeof($keys); $i < $size; ++$i) {
$joined[$i] = $keys[$i] . " " . $operator[$i] . " '" . mysql_real_escape_string($queries[$i]) . "'";
}
然后你可以使用implode
:
$string = 'SELECT [...] WHERE (' . implode(' OR ', $joined) . ')';
thanx为您的回应并为我的法语 感到抱歉您的代码非常方便,但是这将为所有密钥添加OR 我想要做的仅限于重复密钥 并且默认情况下使用AND非重复的: $字符串=“选择从表 WHERE (elment1 = QUERY1 OR elment1
这是什么语言?请用英文写下你的问题。 – Sarfraz 2010-08-06 21:03:47
它的法语 – 2010-08-06 21:05:20
我足够了解这是法语,但还不足以知道问题是什么。 – jergason 2010-08-06 21:05:59