从上一页获取数组值并显示在表

时间:2017-06-23 01:54:42

标签: php mysql

所以我试图弄清楚如何从我从上一页获得的数组中显示表中的数据。下面是代码用于检索barang_id值,下面的代码工作正常,我用它来显示" barang_id"我从上一页得到的;

<?php
if(isset($_POST['barang_id'])){
  if (is_array($_POST['barang_id'])) {
    foreach($_POST['barang_id'] as $value){
      echo $value . " ";
    }
  } else {
    $value = $_POST['barang_id'];
    echo $value;
  }
}

?>

下面是截图,其中有两个来自barang_id的值,即15和16,

enter image description here

我的问题是我是如何执行select语句然后在表格中显示我检索到的ID,下面是我尝试的代码,它不起作用,所以我卡住了。我试着谷歌搜索,但我的理解太弱,因为我无法帮助自己。

<table class="table table-striped table-bordered">
  <tr>
    <th>ID</th>
    <th>Name</th>
    <th>Description</th>

  </tr>
  <?php
  $sql2 = "SELECT * FROM `tbl_barang` WHERE `barang_id` IN (' . implode(',', array_map('intval', $value)) . ')";
  $result = $mydb->query($sql2);

  while ($detailrow = $result->fetch_array()) {
  ?>
  <tr>
    <td><?php echo $detailrow['barang_id']; ?></td>
    <td><?php echo $detailrow['name']; ?></td>
    <td><?php echo $detailrow['description']; ?></td>

  </tr>
  <?php } ?>
  </table>

任何帮助表示赞赏。提前谢谢你

1 个答案:

答案 0 :(得分:1)

替换您的查询

$sql2 = "SELECT * FROM `tbl_barang` WHERE `barang_id` IN (' . implode(',',$value)) . ')";

使用以下代码

$sql2 = "SELECT barang_id, name, description FROM tbl_barang WHERE barang_id IN (" . implode(',', $_POST['barang_id']) . ")";

之前请确保 $ _ POST ['barang_id'] 不应为空。