我目前正在使用php中的Table类。此类通过仅为列名提供值以及从所选数据中提供数组来创建动态表。我坚持以我想要的正确方式显示值。这就是它现在的样子:current table。我以为它可能是我的阵列。在数组中,所有值都是相反的:array。第二个是在第一个id之前。这是我的表类:
public function displayTable($columns, $values = 0)
{
$this->setTable("<table class='table table-striped table-hover'>
<thead class='thead-inverse'>
<tr>");
foreach ($columns as $columnName) {
$this->setTable($this->getTable(). "<th>".$columnName."</th>" );
}
$this->setTable($this->getTable(). "</tr></thead><tbody>");
for ($x = 0; $x != sizeof($values); $x++) {
$this->setTable($this->getTable(). "<tr>");
foreach ($values as $value) {
$this->setTable($this->getTable(). "<td>".$value[$x] ."</td>");
var_dump($value);
}
$this->setTable($this->getTable(). "</tr>");
}
$this->setTable($this->getTable(). "</tbody></table>");
var_dump($this->getTable());
}
我尝试在我的选择查询中应用订单。这将摆脱我在阵列上的问题。在td中显示项目是个问题。 td不断创建,直到它没有值并开始一个新的数组,就像我在图片中显示的那样。那么无论如何要解决在表头td?
下显示这些值的问题答案 0 :(得分:0)
通过查看数组图像,您似乎使用fetchAll()
从数据库中获取记录。
fetchAll()
组合提供数字+关联数组。这就是为什么你的记录如下: -
array(
'userId'=>2,
0=>2,
'userEmail'=>'some value',
1=>'same mail id'
);
现在你只有两个theads # and email
,但是第二个foreach在每次迭代后为你提供4 <td>
,并且hense table失真。
解决方案: - 您必须使用fetchAll(PDO::FETCH_NUM)
来解决您的问题,然后更改您的代码,如下所示: -
public function displayTable($columns, $values = 0){
$this->setTable("<table class='table table-striped table-hover'><thead class='thead-inverse'><tr>");
foreach ($columns as $columnName) {
$this->setTable($this->getTable(). "<th>".$columnName."</th>" );
}
$this->setTable($this->getTable(). "</tr></thead><tbody>");
for ($x = 0; $x != sizeof($values); $x++) {
$this->setTable($this->getTable(). "<tr>");
foreach ($values as $key=> $value) {
$this->setTable($this->getTable(). "<td>".$value[$key] ."</td>");
}
$this->setTable($this->getTable(). "</tr>");
}
$this->setTable($this->getTable(). "</tbody></table>");
var_dump($this->getTable());
}