我正在尝试在3个列上显示某个表的数据,并希望它在3个结果后继续到下一行,所以如果有30个结果,则应该有10行3列,如果有15个结果那么应该是5行3列等。
但是我只能找到关于如何使用“普通sql语句”执行此操作的示例,并且无法在PDO中找到可以执行相同操作的任何内容,并且不幸地将普通SQL和PDO混合使用效果不佳。
这是我的代码:
$result = getdatanames($db, $_GET['id']);
foreach ($result as $row) {
echo '<tr>';
echo '<td style="width: 20%; text-align:right;"><a href="/?p=USERS.profile&id='.$row->idd.'">'.$row->name.'</a></td>';
echo '<td style="width: 13%;"><span style="font-variant:small-caps;font-size:10px;position:relative;top:-5px;color:#C11B17;">'.$row->last_name.'</span></td>';
echo '</tr>';
}
但是我知道这将显示每一行(名字和姓氏),但我怎样才能使它工作,每行显示3条记录(名字和姓氏)?
又名:
Name Last name - Name Last name - Name Last name
Name Last name - Name Last name - Name Last name
Name Last name - Name Last name - (Empty auto fill)
答案 0 :(得分:2)
这与PDO
或mysql
无关,您只需添加一个计数器,只需添加一个</tr><tr>
块,只要您可以将计数器划分为3.或者添加列变量并在达到3后将其设置为1.
也许在循环后添加几列以完成最后一行。
使用列计数器:
$column = 0;
echo '<tr>';
foreach ($result as $row)
{
$column++;
echo '<td style="width: 20%; text-align:right;"><a href="/?p=USERS.profile&id='.$row->idd.'">'.$row->name.'</a></td>';
echo '<td style="width: 13%;"><span style="font-variant:small-caps;font-size:10px;position:relative;top:-5px;color:#C11B17;">'.$row->last_name.'</span></td>';
if ($column == 3)
{
$column = 0;
echo '</tr><tr>';
}
}
echo '</tr>';