【问题标题】:Using 'foreach' values to plugin to database query then echo back into the table使用“foreach”值插入数据库查询,然后回显到表中
【发布时间】:2018-03-15 04:54:34
【问题描述】:

经过多次调整,我终于让我的桌子看起来有点像样了:

<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,但是当我在函数中或通过全局检索尝试它时,它不起作用....有什么见解吗?

   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 两次都表示它的索引和未定义的索引。

【问题讨论】:

    标签: php database mysqli foreach html-table


    【解决方案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.
    }
    

    【讨论】:

    • 谢谢你的工作!!!! @SmitR 现在只需要让它适用于每个数据库查询,因为我在每个数据库中都没有“名称”,还有另一个令人头疼的问题....
    • 祝你好运。如果您有任何问题,您可以在这里提问。 @幸存者28
    • 有没有办法让 Foreach 函数使用 IF 语句忽略一些结果(不按顺序)?即 IF($col = 'ID' echo "") 是否有意义?
    • 你我的朋友,是神!谢谢! @SmitR
    • 欢迎您,很高兴我能帮上忙。 :) @Survivor28
    猜你喜欢
    • 2018-04-06
    • 2012-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-03
    • 1970-01-01
    • 2014-09-23
    相关资源
    最近更新 更多