例如,我有一个attributes table
,并且可以添加无限属性。添加新列时使用ALTER TABLE
,插入属性值时使用UPDATE
。所有这些列都必须显示在表格中。但是,在显示新添加的列值方面有一些困难。
这是静态列值回显的样子:
public function showAllUsers(){
$x = $this->getAllUsers();
foreach ($x as $data) {
echo '<tr>';
echo '<th>'. $data['id'].'</th>';
echo '<td>'.$data['user'].'</td>';
echo '<td>'.$data['email'].'</td>';
echo '<td>'.$data['age'].'</td>';
echo '</tr>';
}
}
它回显我指定的数据库的值。但是我需要一个循环,该循环将回显任何新添加的值,因此上面的静态回声方法不起作用。
这是我到目前为止提出的:
public function showAllUsers(){
$x = $this->getAllUsers();
foreach ($x as $data) {
echo '<tr>';
print_r( '<th>'. $data.'</th>');
echo '</tr>';
}
}
它仅显示一个Notice: Array to string conversion
并回显一个值为0的标签。我如何回显一行中的所有内容?
答案 0 :(得分:0)
尝试一下:
public function showAllUsers()
{
$x = $this->getAllUsers();
echo '<tr>';
foreach (array_keys($x[0]) as $field) {
echo '<th>'. $field.'</th>';
}
echo '</tr>';
foreach ($x as $data) {
echo '<tr>';
foreach ($data as $val) {
echo '<td>'. $val.'</td>';
}
echo '</tr>';
}
}
答案 1 :(得分:0)
您可以使用html标记内嵌$ data数组。
Implode接受所有数组值,并将它们与“胶水”连接起来并使其成为字符串。
public class Product
{
public string id { get; set; }
public string category_id { get; set; }
public string store_id { get; set; }
public string name { get; set; }
public string price { get; set; }
public string description { get; set; }
public string image { get; set; }
public string active { get; set; }
}