经过多次调整后,我终于让我的桌子看起来还不错:
<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都说明了它的未定义索引。
答案 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.
}