。我想将查询结果输出到3个不同的列中。总行数是8。PHP PDO输出MySQL查询结果到我使用PHP PDO多个表列
它应该显示如下:
值值值
值值值
值值
我只得到所述第一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>';
?>
这里是一个的var_dump($受试者)
阵列(8){[0] =>对象(受试者)#3(1){[”数据“:protected] => array(3){[”subject_id“] => string(1)”8“[”subject_name“] => string(7)”Theatre“[”count“] => string(0 )“>”}} [1] => object(Subject)#4(1){[“data”:protected] => array(3){[“subject_id”] => string(1)科学“[”count“] => string(0)”“}} [2] => object(Subject)#5(1){[”data“:protected] = > array(3){[“subject_id”] => string(1)“6”[“subject_name”] => string(13)“Language Arts”[“count”] => string(0 )“>}} [3] => object(Subject)#6(1){[”data“:protected] => array(3){[”subject_id“] => string(1) subject_name“] => string(10)”Literature“[”count“] => string(0)”“}} [4] => object(Subject)#7(1){[”data“:protected] = > array(3){[“subject_id”] => string(1)“4”[“subject_name”] => string(4)“Math”[“count”] => string(0)“”}} 5] => object(Subject)#8(1){[“data”:protected] => array(3){[“subject_id”] => string(1)“3”[“subject_name”] => string (14)“Social Studies”[“count”] => string(0)“”}} [6] => object(Subject)#9(1){[“data”:protected] => array(3) {[ “subject_id”] =>串(1) “2”[ “SUBJECT_NAME”] =>串(10) “视觉艺术”[ “计数”] =>串(0) “”}} [7] => object(Subject)#10(1){[“data”:protected] => array(3){[“subject_id”] => string(1)“1”[“subject_name”] => string(3)“技术” [ “计数”] =>串(0) “”}}}
这是我的主题类:
require_once("DataObject.class.php");
class Subject extends DataObject {
protected $data = array(
"subject_id" => "",
"subject_name" => "",
"count" => ""
);
public function getCount() {
$conn = parent::connect();
$sql = "SELECT subject_name, count(*) as count FROM " . TBL_SUBJECT;
try {
$st = $conn->prepare($sql);
$st->execute();
$subjects = array();
foreach ($st->fetchAll() as $row) {
$subjects[] = new subject($row);
}
parent::disconnect($conn);
return $subjects;
} catch (PDOException $e) {
parent::disconnect($conn);
die("Query failed: " . $e->getMessage());
}
}
public function getAllSubjects() {
$conn = parent::connect();
$sql = "SELECT * FROM " . TBL_SUBJECT . " ORDER BY subject_id DESC";
try {
$st = $conn->prepare($sql);
$st->execute();
$subjects = array();
foreach ($st->fetchAll() as $row) {
$subjects[] = new subject($row);
}
parent::disconnect($conn);
return $subjects;
} catch (PDOException $e) {
parent::disconnect($conn);
die("Query failed: " . $e->getMessage());
}
}
它看起来像行计数器停留在1 - 尝试添加'$ rcounter ++'你'foreach'块的底部。 – ygesher
的$ rcounter没有工作 – user2091928