![](/img/trans.png)
[英](PHP) I have an unknown number of key value pairs in an array, how can I use them in an sql query?
[英]How can I obtain which checklist items are checked in php and use them to make a sql query?
我正在嘗試創建一個清單,作為我的數據庫的過濾器。 該清單將用於輸入要搜索的多個值。 例如,用戶應該能夠同時搜索AC和Abarth品牌。
這就是品牌清單的樣子。
<h3>Brand</h3>
<?php
$query = "select distinct(Brand) from Sheet1 order by Brand ASC";
$rs = mysqli_query($conn,$query) or die("Error : ".mysql_error());
while($brand_data = mysqli_fetch_assoc($rs)){
?>
<a href="javascript:void(0);" class="list-group-item">
<input type="checkbox" class="item_filter brand" value="<?php echo $brand_data['Brand']; ?>" >
<?php echo $brand_data['Brand']; ?></a>
<?php } ?>
我的ajax代碼。
var brand;
$(function(){
$('.item_filter').click(function(){
$('.product-data').html('<div id="loaderpro" style="" ></div>');
brand = multiple_values('brand');
$.ajax({
url:"ajax.php",
type:'post',
data:{brand:brand},
success:function(result){
$('.product-data').html(result);
}
});
});
});
function multiple_values(inputclass){
var val = new Array();
$("."+inputclass+":checked").each(function() {
val.push($(this).val());
});
return val;
}
這就是我的php處理復選框的方式。
$brand = isset($_REQUEST['Brand'])?$_REQUEST['Brand']:"";
$query = "select * from Sheet1 where";
//filter query start
if(!empty($brand)){
$branddata =implode("','",$brand);
$query .= " Brand in('$branddata')";
}
$rs = mysqli_query($conn,$query) or die("Error : ".mysqli_error($conn))
結果應為$ query = select * from Sheet1,其中Brand in('AC','Abarth')。 這是我的數據庫,其中顯示了AC或Abarth品牌的所有汽車型號。 我得到的當前結果是,它不會提供清單中所檢查內容的值。 所以最終結果什么都沒有,可能是因為我的Ajax代碼,因為$ brand沒有獲得任何價值。 該值應該是一個數組,該數組以后將轉換為單個字符串。
弄清楚我自己的問題。 PHP是錯誤的。 php正在尋找變量Brand的值,而ajax會將值發送到變量brand。
通過更改固定
$brand = isset($_REQUEST['Brand'])?$_REQUEST['Brand']:"";
至
$brand = isset($_REQUEST['brand'])?$_REQUEST['brand']:"";
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.