我需要你的帮助。我正在开发一个小插件,用于wordpress中的一些电子邮件验证,现在我已经开始了。
我想获得一个ID数组,我可以通过以下代码获取它们:
function myFuntion () {
global $wpdb;
$supporterIDArray = $wpdb->get_results("SELECT id FROM myTable WHERE value = 'true' AND field_id = 1");
}
现在我得到一个未知数量的ID的数组,如[7,9,34,53,...]
之后我想计算有多少其他行有此ID。但我不知道该怎么做,可能会像这样......
global $wpdb;
$countSupporters = $wpdb->get_results("SELECT COUNT(*) AS allSupporter FROM myTable WHERE value = 'true' AND field_id = '2' AND `id` = **THESE IDS FORM THE ARRAY**");
echo $countSupporters -> allSupporter; /*Number of all ROWs which have an ID wich was in the array
我希望我解释得足够好,如果你能帮助我,我将非常感激。谢谢!
答案 0 :(得分:0)
您需要IN
关键字:
$countSupporters = $wpdb->get_results("
SELECT
COUNT(*) AS allSupporter
FROM
myTable
WHERE
value = 'true' AND
field_id = '2' AND
id IN (1, 2, 3, 4, 5)
");
您需要将数组格式化为逗号分隔列表。通常情况下,您可以使用join(',', $list)
来执行此操作,但是您需要注意SQL注入,我对WordPress查询系统不够熟悉,无法知道它们是如何处理的。
答案 1 :(得分:0)
试试这个:
$array = implode(",",$your_array);
$countSupporters = $wpdb->get_results("SELECT COUNT(*) AS allSupporter FROM myTable WHERE value = 'true' AND field_id = '2' AND id IN ( ".$array." )");