查找数组和数据库之间的匹配项

时间:2015-10-01 13:18:04

标签: php mysql arrays

我有一个名为" selected_checkboxes"的数组。在我的数据库中,我有多个列,其中一些包含值1,否则值为NULL。这些列的名称与数组的值完全相同。

我现在想动态检查我的数组($_POST['selected_checkboxes'])的值是否与数据库中我的列的值匹配。如果数组中的所有值在数据库中的值都为1,那么它应该回显像匹配!

这是我到目前为止所尝试过的,但我认为这是完全错误的:

if(!$result = $db->query("SELECT * FROM products")){
     die('Error');
}

while($row = $result->fetch_object()){
    foreach($_POST['selected_checkboxes'] as $value) {
        if ($value == 1) {
            $say .= $value . ' is = 1';
        }
    }
}
echo $say;

我感谢任何帮助!!

修改

这是数组' selected_checkboxes'正在生成:

$('.show_result').click(function() {    
    // Get all selected checkboxes
    var selected = [];
    $.each($("input[type=checkbox]:checked"), function(){            
         selected.push($(this).attr('id'));
    });
    // Get the selected option field
    selected.push($('#PG_Select_Bereich1').val());

    // Deliver data to PHP
    $.ajax({
         url : "typo3conf/ext/produkteguide_sg/pi1/products.php",
         type: "POST",
         data : { selected_checkboxes:selected },
         success: function(data, textStatus, jqXHR)
         {
              $("#PG_Resultate").html(data);
         },
         error: function (jqXHR, textStatus, errorThrown)
         {
             //alert(errorThrown);
         }
    });

这就是我的数据库的样子: sense

2 个答案:

答案 0 :(得分:0)

我做过类似的事情,但是以不同的方式,我希望这是你正在寻找的:

// Query execution
$result = mysqli_query($CONN,"SELECT * FROM whatever");

while($row_from_db = mysqli_fetch_array($result)){
    $db_value = is_null($row_from_db['myValue']) ? 0 : 1;
    $check_value = !isset($_POST['selected_checkboxes']['myValue']) ? 0 : 1

    echo $db_value == $check_value ? "Match!" : "Not matching :(";
}

答案 1 :(得分:0)

我正在为您的要求编写伪代码。

1)循环数组。

2)while循环遍历数组如果找到元素的值1,则转到下一步,否则继续循环。

3)如果数组元素值为1则获取元素的键并准备sql查询,该查询检查与键名相同的列名,每个记录的值为1,然后将其标记为匹配。

希望这对你有所帮助。如果你没有得到这个,那么让我知道我会为你编写代码。

修改 每个复选框名称必须与数据库中的列名相同。

<table id="myTableID">
    <thead>
        <tr>
            <th></th>
            <th></th>
            <th></th> 
        </tr>
    </thead>

    <tbody>
        <tr>
            <th></th>
            <th></th>
            <th></th>
        </tr>

        <tr>
            <th></th>
            <th></th>
            <th></th>
        </tr>
    </tbody>    
</table>

希望这是根据您的要求。