我有一个名为" 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
答案 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>
希望这是根据您的要求。