2017-07-11 29 views
0

こんにちは私のテーブルのすべての内容を表示するページがあります。テーブルの各行に沿って、私はチェックボックスを含む列も持っています。ユーザーがチェックボックスにチェックを入れ、送信ボタンを押して1つ以上の行を選択すると、次のページ(material.php)の表にその行だけが表示されます。私はそれが基本的に選択された行ごとの選択文であることを知っています。しかし、私はこれに近づく方法を知らない。誰でも助けることができますか?おかげチェックボックス(PHP)を使用して動的テーブルから行を選択し、メール機能を送信するための行を挿入する方法

<td><input type='checkbox' name='material[]' value='material[<?php echo $id;?>]' /></td> 

ここでは私のmaterial.phpページです -

<table> 
     <?php 
     foreach ($_POST['material'] as $item) { 
      $query = "SELECT * FROM model_material WHERE id = '$item'"; 

      if (mysqli_query($db_con, $query)) { 
       $query_result = mysqli_query($db_con, $query); 
       while ($all_select_material = mysqli_fetch_assoc($query_result)) { 
        extract($all_select_material); 
        ?> 
        <tr> 
         <td><?php echo $id; ?></td> 
         <td><?php echo $model_id; ?></td> 
         <td><?php echo $material_id; ?></td> 
        </tr> 
        <?php 
       } 
      } 
     } 
     ?> 
    </table> 

誰かが

答えて

0

はこの線に沿って何か試してみてください助けてください:セキュリティのために準備された文を使用して を:

<table> 
     <?php 
     foreach ($_POST['material'] as $item) { // loop your post array 
      $query = "SELECT col1,col2,col3,col4 FROM model_material WHERE id = 
      ?"; // prepare a query 
      $stmt = $db_con->prepare($query); 
      if ($stmt) { 
       $stmt->bind_param("i",$item); // bind the integer id ($item) 
       $stmt->execute(); // fire it 
       $stmt->bind_result($col1,$col2,$col3,$col4); // bind the selected rows to each variable 
       $stmt->store_result(); //incase of large results prevents memory error 
       while ($stmt->fetch()) { // loop your results like $result fetch assoc 
        echo "<td>".$col1."</td>"; // display data 
        echo "<td>".$col2."</td>"; 
        echo "<td>".$col3."</td>"; 
       } 
       $stmt->close(); // close statement 
      } 
      } 
      $db_con->close(); // close database 
     ?> 
    </table> 
関連する問題