0

我想在我的网页上的表格中显示我的选择查询的结果,但是我目前使用的代码使用了一组预定义的列。我的代码是这样的:

   $result= mysqli_query($con,"SELECT * FROM Customers where First_name = '$specFirstName'");

echo "<table border=\"1px solid black\" width=\"80%\"><tr><th>Customer ID</th><th >First Name</th><th>Last Name</th></tr>" ;
while($row = mysqli_fetch_array($result)){
   echo "<tr><td style=\"text-align:center;\">". $row[('CustomerID')] . "</td><td style=\"text-align:center;\">".$row[('First_name')]."</td><td style=\"text-align:center;\">".$row[('Last_name')];
  echo "</td></tr>";
  }
  echo "</table>"

现在,我该如何做同样的事情,但在自动生成的表中使用数据库标题?我也可以使用这种方法让用户在查询中指定所需的列吗?非常感谢,汤米

4

2 回答 2

2

while您可以在循环之前获取字段,例如

$fields = ($result->fetch_fields());

?> <table border="1px solid black" width="80%"><tr> <?php
foreach($fields as $field) { 
    ?> <th><?php echo $field->name; ?></th> <?php
}
?> </tr> <?php
while($row = mysqli_fetch_array($result)){
  ?><tr><?php

  foreach($row as $val) {
        ?> <td style="text-align: center;"> <?php echo $val; ?> </td> <?php
  } 

  ?> </tr> <?php
}
?> </table> <?php
于 2013-07-16T19:19:35.350 回答
1

像这样的东西应该工作。您只需定义$columns要在数组映射中显示的值。一旦您编写代码以允许用户选择她/他想要的列,这也可以工作,您只需使用所选选项设置此地图。

// Define the columns title and name in this array map.
$columns = array(
  'Customer ID' => 'CustomerID', 
  'First Name' => 'First_name',
  'Last Name' => 'Last_name'
);
// Run the query
$result= mysqli_query($con,"SELECT * FROM Customers WHERE First_name = '$specFirstName'");

// Output table header
echo "<table border=\"1px solid black\" width=\"80%\"><tr>";
foreach ($column as $name => $col_name) {
  echo "<th>$name</th>";
}
echo "</tr>";

// Output rows 
while($row = mysqli_fetch_array($result)) {
  echo "<tr>";
  foreach ($column as $name => $col_name) {
    echo "<td style=\"text-align:center;\">". $row[$col_name] . "</td>";
  }
  echo "</tr>";
}
// Close table
echo "</table>"
于 2013-07-16T19:24:52.087 回答