多列而不是行 - PDO语句

问题描述 投票:1回答:1

我试图在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)
php mysql html-table rows
1个回答
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>';
© www.soinside.com 2019 - 2024. All rights reserved.