【问题标题】:Multiple columns instead of rows - PDO statement多列而不是行 - PDO 语句
【发布时间】:2017-12-31 00:37:57
【问题描述】:

我试图在 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】:

    这与PDOmysql 无关,您只需要添加一个计数器,并且只要您可以将计数器除以3 就添加一个&lt;/tr&gt;&lt;tr&gt; 块。或者添加一个列变量并设置它达到 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>';
    

    【讨论】:

    • 您好,我知道它没有,但是我可以在教程中在线找到的计数器方法是“普通/普通”sql,它不适用于 PDO,因此我删除了它们我无法让他们工作。我知道当前的代码我不会按照我想要的方式工作并且必须进行更改,我只是在展示它现在的样子,以及我想要它的样子
    • @Bauke Van der Meer 我添加了一个代码示例(没有完成最后一行的部分)。
    • 工作就像一个魅力,感谢一堆快速解决方案一直在寻找几个小时!
    猜你喜欢
    • 1970-01-01
    • 2016-04-18
    • 1970-01-01
    • 2021-09-12
    • 2014-08-12
    • 2019-09-16
    • 1970-01-01
    • 2013-05-27
    • 1970-01-01
    相关资源
    最近更新 更多