使用' foreach'插入数据库查询的值然后回显到表中

时间:2018-03-15 04:54:35

标签: php database mysqli foreach html-table

经过多次调整后,我终于让我的桌子看起来还不错:

<table id="Productslist" class="list">
    <thead>
      <tr>
        <th> Part </th>
        <th> Brand </th>
        <th> Name </th>
        <th> Quantity </th>
        <th> Price </th>
    </tr>
    </thead>
    <tbody>
    <?php 
            $part = find_part();    
            foreach($parts_list as $col => $value) {
            echo '<tr><td>'.$col.'</td><td>'.$value.'</td>
            <td>'.$part['Name'].'</td></tr>';
                    }

        ?>
    </tbody>
    <tfoot>
    <tr>
        <td> Total </td>
        <td></td>
        <td></td>
        <td></td>
        <td></td>
    </tr>
    </tfoot>
</table>

foreach循环效果很好!因为它在该列中找到列名和值并将其插入到自己的行中。太棒了!现在我真的想在数据库查询中使用$col$value,但是当我在函数或全局检索中尝试它时,它不起作用....任何洞察力?< / p>

   function find_part() {
     global $db;
     global $col;
     global $value;
     $sql = "SELECT * FROM " .$col. "";
     $sql .= "WHERE ID='" . $value ."' ";
     $result = mysqli_query($db, $sql);
     $part = mysqli_fetch_assoc($result);
     mysqli_free_result($result);
     return $part;  } 

    function find_part($col, $value) {
     global $db;
     $sql = "SELECT * FROM " .$col. "";
     $sql .= "WHERE ID='" . $value ."' ";
     $result = mysqli_query($db, $sql);
     $part = mysqli_fetch_assoc($result);
     mysqli_free_result($result);
     return $part;  } 

两次error_log都说明了它的未定义索引。

1 个答案:

答案 0 :(得分:1)

您必须将值作为参数传递给函数。使用以下代码。

<?php 
            foreach($parts_list as $col => $value) {
             $part = find_part($col, $value);    
             echo '<tr><td>'.$col.'</td><td>'.$value.'</td>
             <td>'.$part['Name'].'</td></tr>';
            }

?>

使用以下代码。

function find_part($col, $value) {
     global $db;
     $sql = "SELECT * FROM " .$col. "";
     $sql .= "WHERE ID='" . $value ."' ";
     $result = mysqli_query($db, $sql);
     $part = mysqli_fetch_assoc($result);
     mysqli_free_result($result);
     return $part;  
} 

您可以在此功能中获得$ col和$ value。

更新

跳过foreach循环中的迭代

if($col == 'ID'){
continue; //it will skip the iteration and start next one.
}