динамическое заполнение оператора SELECT переменными - PullRequest
0 голосов
/ 01 июня 2018

У меня есть таблица с 7 столбцами, заполненными из mysql ... каждый заголовок таблицы содержит флажок, который, если установлен флажок и нажата кнопка отправки, будет отправлен на страницу экспорта в 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... <- это то, что я хочу заменить на <code>SELECT $expid, $exploc ... FROM table... Я пробовал разные способы, но ни один из них не работал.Спасибо.

Ответы [ 3 ]

0 голосов
/ 01 июня 2018
  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="";
    }
    

, чтобы ваш запрос был

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

Вместо установки другого имени вы можете установить имя типа массива в <input type="checkbox" value="exploc" name="exploc[]">

0 голосов
/ 01 июня 2018

Решено.

На основе ответа Дипанвита Кунду я использовал

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

и работает как шарм.Спасибо.

0 голосов
/ 01 июня 2018

Вы должны использовать атрибут name на вашем флажке

<input type="checkbox" value="123" name="expid" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...