php pdo将mysql查询结果输出到多个表列中

php pdo将mysql查询结果输出到多个表列中,php,pdo,Php,Pdo,我正在使用php PDO。我想将查询结果输出到3个不同的列中。总行数为8 它应显示如下: 价值 价值 价值 我只得到前3个值 这是我的密码: <?php $subjects = Subject::getAllSubjects(); $rows = 8; $rcounter = 1; $cols = 3; echo '<table>'; for($i = 0; $i < $rows / $cols; $i++) { foreac

我正在使用php PDO。我想将查询结果输出到3个不同的列中。总行数为8

它应显示如下:

价值
价值
价值

我只得到前3个值

这是我的密码:

  <?php
   $subjects = Subject::getAllSubjects();

   $rows = 8;
   $rcounter = 1;
   $cols = 3;
   echo '<table>';

for($i = 0; $i < $rows / $cols; $i++) {
    foreach($subjects as $subject){
        echo '<tr>';

        for($j=0; $j < $cols && $rcounter <= $rows ;$j++, $rcounter++) {
            echo "<td>".$subject->getValueEncoded('subject_name')."</td>";
        }
        echo '</tr>';
    }
}
    echo '</table>';
  ?>
试试这个:

$subjects = Subject::getAllSubjects();

$rows = 8;
$rcounter = 1;
$cols = 3;

echo '<table>';

foreach($subjects as $subject){
    echo '<tr>';
    for($i = 0; $i < $rows ; $i++) {
        // echo "<td>".$subject->getValueEncoded('subject_name')."</td>";
        echo "<td>".$subject[$i]->getValueEncoded('subject_name')."</td>";
    }
    echo '</tr>';
}
echo '</table>';
$subjects=Subject::getAllSubjects();
$rows=8;
$rcounter=1;
$cols=3;
回声';
foreach($subject作为$subject){
回声';
对于($i=0;$i<$rows;$i++){
//回显“$subject->getValueEncoded('subject_name')”;
echo“$subject[$i]>getValueEncoded('subject_name');
}
回声';
}
回声';

我得到相同的结果这是什么:$subjects=Subject::getAllSubjects();return?每个主题名称显示在8列中。它不显示8行8列,每个主题名称重复8次。我现在收到一个空白屏幕。行计数器看起来保持在1-尝试在
foreach
块底部添加
$rcounter++
。该$rcounter不起作用
$subjects = Subject::getAllSubjects();

$rows = 8;
$rcounter = 1;
$cols = 3;

echo '<table>';

foreach($subjects as $subject){
    echo '<tr>';
    for($i = 0; $i < $rows ; $i++) {
        // echo "<td>".$subject->getValueEncoded('subject_name')."</td>";
        echo "<td>".$subject[$i]->getValueEncoded('subject_name')."</td>";
    }
    echo '</tr>';
}
echo '</table>';