我需要阻止 ID 列显示在 html/php 生成的 foreach 表中,但同时我仍然需要引用要按 ID 编辑的数据。这是代码。
$queryz = "SELECT * FROM box WHERE date=CURDATE()";
print "<table> ";
$result = mysqli_query($db,$queryz);
//return only the first row (we only need field names)
$row = $result->fetch_assoc();
print " <tr> ";
foreach ($row as $field => $value){
print " <th>$field</th> ";
} // end foreach
print " </tr> ";
//second query gets the data
$data = $result;
$data->fetch_assoc();
foreach($data as $row){
print " <tr> ";
foreach ($row as $name=>$value){
print " <td>$value</td> ";
} // end field loop
echo '<td><a href="edit.php?id=' . $row['ID'] . '">Edit</a></td>';
echo '<td><a href="print.php?id=' . $row['ID'] . '">Print</a></td>';
print " </tr> ";
} // end record loop
我希望它抓取所有列,但不显示 ID 列。我仍然需要 ID 数据,以便可以编辑表格:echo '<td><a href="edit.php?id=' . $row['ID'] . '">Edit</a></td>';
谢谢大家!我尝试过通过 if 数组进行过滤并排除 SQL 中的数据,但它不允许我随后编辑表。我猜测是因为它一开始就没有抓取数据。
最佳答案
您可以通过简单地忽略键为“ID”的数组项来解决眼前的问题,如下所示:
$queryz = "SELECT * FROM box WHERE date=CURDATE()";
print "<table> ";
$result = mysqli_query($db,$queryz);
//return only the first row (we only need field names)
$row = $result->fetch_assoc();
print " <tr> ";
foreach ($row as $field => $value){
if ( $field <> 'ID' ) {
print " <th>$field</th> ";
}
} // end foreach
print " </tr> ";
//second query gets the data
$data = $result;
$data->fetch_assoc();
foreach($data as $row) {
print " <tr> ";
foreach ($row as $name=>$value){
if ( $name <> 'ID' ) {
print " <td>$value</td> ";
}
} // end field loop
echo '<td><a href="edit.php?id=' . $row['ID'] . '">Edit</a></td>';
echo '<td><a href="print.php?id=' . $row['ID'] . '">Print</a></td>';
print " </tr> ";
} // end record loop
关于php - 排除 foreach 表中的列而不丢失数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46881487/