使用变量动态填充SELECT语句

时间:2018-05-31 22:03:06

标签: php html5 mysqli

我有一个从mysql填充7列的表...每个表标题都包含一个复选框,如果选中并单击提交,则会将其发送到导出到csv页面。

有没有办法使用SELECT $var1, $var2...$var7 FROM...?如果选中复选框,则将使用$ var1到$ var7,如果未选中复选框,则显示一些消息

要想明白我在问什么,我会把一些代码......

HTML

<td class="captabel">
 <input type="checkbox" value="expid" >
</td>
<td class="captabel">
 <input type="checkbox" value="exploc" >            
</td>
etc

PHP

if(isset($_POST['expid'])){
$expid="id";
}
else{
$expid="";
}
if(isset($_POST['exploc'])){
$exploc="locatie";
}
else{
$exploc="";
}
etc

并且在某个时刻出现SELECT * FROM table...&lt; - 这就是我要用SELECT $expid, $exploc ... FROM table...替换的内容 我尝试了各种各样的方法,但都没有。 感谢。

3 个答案:

答案 0 :(得分:1)

您必须使用复选框上的name属性

<input type="checkbox" value="123" name="expid" />

答案 1 :(得分:1)

  1. 修改输入类型<input type="checkbox" name="exploc" value="exploc">
  2. 在你的php脚本中检查:

    $selectStr= "";
    if(!empty($_POST['expid'])) {
      $selectStr="id";
    }
    else{
     $selectStr="";
    }
    if(!empty($_POST['exploc'])) {
      $selectStr= !empty($selectStr) ? ", locatie" : "locatie";
    }
    else{
     $selectStr="";
    }
    
  3. 所以你的查询将是

        if(!empty($selectStr)) {
          $qry = "SELECT $selectStr FROM table...";
         }
    

    您可以在<input type="checkbox" value="exploc" name="exploc[]">

    中设置数组类型名称,而不是设置不同的名称

答案 2 :(得分:0)

解决了它。

基于Dipanwita Kundu回答我使用

if(!empty($columns)){
    $sql = 'SELECT '. implode(', ', $columns). ' FROM raport' ;
}   

并且像魅力一样。 谢谢。