我寻求的结果是遍历从isset或true的表单中获取的项目,然后使用sql语句查询数据库。复杂性来自于我有9个字段,用户可以选择一个或多个或所有字段(它是一个搜索数据库,但每次你选择一个额外的字段,它会优化搜索)。返回true的代码部分我可以通过使用foreach循环来解决这个问题,但如果结果变化,如何将它链接到SQL查询?
答案 0 :(得分:1)
根据输入的字段生成不同的查询。
幸运的是,这在SQL中并不太难:所有这些字段都在WHERE
子句中:
$where = [ 'foo' => 'bar', 'baz' => 0 ];
$sth = $db->prepare( "SELECT * FROM $table WHERE " .
implode( " AND ",
array_map( function($i) { return "$i=?"; }, array_keys( $where ) ) )
);
$sth->execute( array_values( $where ) );
当然,如果字段之间存在关系,查询可能会变得更复杂,但这是它的要点。
答案 1 :(得分:-1)
学习这需要时间和耐心,我已经从表格中删除了变量
if(isset($_POST['Search'])){
$packID = $_POST['packID'];
$supplier_name = $_POST['supplier_name'];
$timber_species = $_POST['timber_species'];
$timber_product = $_POST['timber_product'];
$timber_grade = $_POST['timber_grade'];
$timber_finish = $_POST['timber_finish'];
$timber_treatment = $_POST['timber_treatment'];
$width = $_POST['width'];
$thickness = $_POST['thickness'];
$length = $_POST['length'];
$markup = $_POST['markup'];
} else{
$packID="";
$supplier_name="";
$timber_species="";
$timber_product="";
$timber_grade="";
$timber_finish="";
$timber_treatment="";
$width= "";
$thickness= "";
$length="";
}
当变量可能设置或未设置时,您如何编写此Kenney?我必须承认我是一个新手并且热衷于学习。这需要时间和耐心。