多列而不是行 - PDO语句

时间:2012-02-08 13:09:51

标签: php mysql html-table rows

我正在尝试在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&amp;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)

1 个答案:

答案 0 :(得分:2)

这与PDOmysql无关,您只需添加一个计数器,只需添加一个</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&amp;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>';