Php 如何在sql中使用类似的内容?
这是我的部分代码Php 如何在sql中使用类似的内容?,php,mysql,sql,arrays,Php,Mysql,Sql,Arrays,这是我的部分代码 if (!isset($_GET['jenis'])) { $jenis = [] ; } else { $jenis = $_GET['jenis']; } $sql= 'SELECT * FROM item WHERE nama LIKE "'.$cari.'%" ORDER BY '.$urutkan.' LIMIT '.$this_page_first_result.','.$results_per_page; <h3 class="sidebar-tit
if (!isset($_GET['jenis'])) {
$jenis = [] ;
} else {
$jenis = $_GET['jenis'];
}
$sql= 'SELECT * FROM item WHERE nama LIKE "'.$cari.'%" ORDER BY '.$urutkan.' LIMIT '.$this_page_first_result.','.$results_per_page;
<h3 class="sidebar-title">jenis</h3>
<div class="sidebar-list">
<ul>
<li><input type="checkbox" onclick="jenissss();" name="jenis[]" value="21" <?php if (in_array("21",$jenis)) { echo "checked"; } ?> > <a> Khusus Pria </a> </li>
<li><input type="checkbox" onclick="jenissss();" name="jenis[]" value="22" <?php if (in_array("22",$jenis)) { echo "checked"; } ?> > <a> Khusus Wanita </a> </li>
<li><input type="checkbox" onclick="jenissss();" name="jenis[]" value="23" <?php if (in_array("23",$jenis)) { echo "checked"; } ?> > <a> Campuran </a> </li>
<li><input type="checkbox" onclick="jenissss();" name="jenis[]" value="24" <?php if (in_array("24",$jenis)) { echo "checked"; } ?> > <a> 2 Lantai </a> </li>
<li><input type="checkbox" onclick="jenissss();" name="jenis[]" value="25" <?php if (in_array("25",$jenis)) { echo "checked"; } ?> > <a> 3 Lantai </a> </li>
<li><input type="checkbox" onclick="jenissss();" name="jenis[]" value="26" <?php if (in_array("26",$jenis)) { echo "checked"; } ?> > <a> 4 Lantai atau Lebih </a> </li>
</ul>
</div>
如果我单击AA,结果将显示数据1
如果我单击AA和BB,结果将显示数据1、数据3和数据5
如果单击AA、BB和DD,结果将显示数据1、数据2、数据3、数据4和数据5
如果我单击EE数据3,则会显示数据4
我希望产量会很高
$sql= 'SELECT * FROM item WHERE nama LIKE "'.$cari.'%" AND jenis LIKE IN '.$jenis.' ORDER BY '.$urutkan.' LIMIT '.$this_page_first_result.','.$results_per_page;
感谢您的帮助试试这个:
$sqlJenis = "('" . implode("','", $jenis) . "')";
$sql= 'SELECT * FROM item WHERE nama LIKE "'.$cari.'%" AND jenis IN '.$sqlJenis.' ORDER BY '.$urutkan.' LIMIT '.$this_page_first_result.','.$results_per_page;
更多关于声明的信息
注意:正如@Twinfriends所说,您应该了解SQL注入(安全性)在将此代码用于实际生产之前。如果不希望用户删除整个数据库,请首先了解SQL注入以防止它们。从规范化该架构开始,使用一个表,每个
jenis
都有一行,而不是使用逗号分隔的字符串列表。这很有效,但效果不好。例如,数据6=AA、AB、AC、AD、AE如果我只单击AC或只单击AB,它不会显示,但如果我单击AA和AB或AA和AB,它会显示sql=和jenis,如%'。$sqlJenis'%
$sqlJenis = "('" . implode("','", $jenis) . "')";
$sql= 'SELECT * FROM item WHERE nama LIKE "'.$cari.'%" AND jenis IN '.$sqlJenis.' ORDER BY '.$urutkan.' LIMIT '.$this_page_first_result.','.$results_per_page;