2016-09-16 33 views
0

私はphpとmysqlで5ヶ月の実務経験があります。私の質問は、チェックボックスを使ってMySQLデータベーステーブルのいくつかの列を選択し、それらの選択された列のデータをPHPのhtmlテーブルに表示する方法です。 下記の私のコードを見て、これを解決するのを助けてください。チェックボックス付きのmysqlカラムを選択し、htmlテーブルのデータを表示する、

チェックボックスコード:

<form role="form" id="viewallteachers" method="POST" autocomplete="on" action=""> 
        <h4>Kindly check the items to view in the table. You have a maximum of 10 items to view at a time in the table.</h4> 
        <hr> 
        <div class="row"> 
         <div class="col-sm-4"> 
          <div class="checkbox"> 
           <label> 
            <input type="checkbox" name="check_list[]" value="tpicture">Picture 
           </label> 
          </div> 
          <div class="checkbox"> 
           <label> 
            <input type="checkbox" name="check_list[]" value="teacherID">Teacher ID 
           </label> 
          </div> 
          <div class="checkbox"> 
           <label> 
            <input type="checkbox" name="check_list[]" value="staffID"> 
            Staff ID 
           </label> 
          </div> 
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button> 
        <button type="submit" name="btnshowcolumns" class="btn btn-primary">Save changes</button> 
        </form> 

は今、以下の表に、選択した列ごとに、選択した列のデータを表示するための私のコードです。以下は

<?php if(!empty($_POST['check_list'])) { 
$check_list = $_POST['check_list']; 
$counter = count($check_list); 
for($x=0; $x<=$counter; $x++){ 
    if(!empty($check_list[$x])){ 
    $sql = "SELECT `".$check_list[$x]."` FROM teachers"; 
$db = new PDO('mysql:host=localhost:3306;dbname=gnoc_db', 'root', 'xxxx'); 
     $select = $db->prepare($sql); 
     $select->execute(); 
     while($row = $select->fetch(PDO::FETCH_ASSOC)) { 
     echo '<tr>'; 
     foreach ($row as $key=>$value) { 
      echo '<td>'.$key . ' = ' . $value .'</td>'; 
       } 
       echo '</tr>'; 
       } /* END OF IF */ 
       } /* END OF FOR LOOP */ 
     } 
    } 
?> 
</tbody> 
</table> 

イメージされています image of checkbox selecting the database columns image of table show data

答えて

0
<?php 
    $columns = $_POST['check_list']; // array 
    foreach($columns as $column) 
    { 
     $cols .= $column . ','; 
    } 
    $sql = "SELECT " . $cols . " FROM teachers"; 
    // do you stuff 
+0

あなたのアプローチでは、「配列から文字列への変換」というエラーが表示されます。配列データをテーブルに表示するにはどうすればいいですか?​​ –

0

あなたの列名は、単にループ終了後に、配列を通じてだけループので、カンマ区切りではなく、要素ごとにカンマを追加最後のカンマを削除してください

<?php 
    $check_list= $_POST['check_list']; // array 
    foreach($colnames as $check_list) 
    { 
     $cols .= $colnames . ','; 
    } 
    $cols = substr($cols,0,strlen($cols)-1); 
    $sql = "SELECT " . $cols . " FROM teachers"; 
    //rest of the code 

?> 
+0

これは問題ありません。しかし、どのようにhtmlテーブルにデータを表示するのですか? @Atal Kishore –

+0

私は再び何の反応も得られないようです。誰かが私を助けてくれますか? –

関連する問題