如何检查所有$ _POST变量是否都使用foreach循环

时间:2017-08-13 09:24:50

标签: php

我想检查是否设置了$ _post变量,然后执行查询(这是另一个主题)。但是我有一个很大的麻烦5小时我无法真正传递它..有我的功能代码

<?php
function post_category_isset()
{
    global $connect;

    $input = sanitize('category');
    $query = mysqli_query($connect, "SELECT term_id FROM term_taxonomy WHERE taxonomy = '$input'");

    while ($row = mysqli_fetch_assoc($query)) {

        $category_id [] = $row['term_id'];
        $result = '\'' . implode('\',\'', $category_id) . '\'';

        foreach ($row as $result) {

            $query1 = mysqli_query($connect, "SELECT name FROM terms WHERE term_id = $result");
            $fetch = mysqli_fetch_assoc($query1);
            $value = $fetch['name'];
            if (isset($_POST[$value])) {
                echo "if(isset($_POST[$value]) OR";

                return true;
            }
        }
    }
}


?>

我已经尝试了一切,是的,代码看起来真的很愚蠢,但我已经耗尽......

所以我做了那个函数来检查是否设置了类别变量,这是另一个函数,因为我希望所有内容都是自动的。我会将其他函数粘贴到pastebin中,因为它不在线程here

所以简而言之,我想创建一个函数来检查先前函数中的所有$ _POST变量是否都已设置,如果是,则触发查询。

谢谢!

1 个答案:

答案 0 :(得分:2)

您不必在此处使用两个单独的查询,只需一个查询即可完成所有操作。

SELECT name 
FROM terms 
WHERE term_id IN (
    SELECT term_id 
    FROM term_taxonomy 
    WHERE taxonomy = '$input'
)

所以你的post_category_isset()函数会是这样的:

function post_category_isset(){
    global $connect;

    $input = sanitize('category');
    $query = mysqli_query($connect, "SELECT name FROM terms WHERE term_id IN (SELECT term_id FROM term_taxonomy WHERE taxonomy = '$input')");
    while ($row = mysqli_fetch_assoc($query)) {
        $value = $row['name'];
        if (isset($_POST[$value])) {
            // your code
        }
}