我正在尝试关注此问题中的帮助:how can i return multiple database record from a class in OOP programming但我似乎无法使其正常运行。
我有一个名为'jobs'的数据库表,我希望从该表中检索所有数据,并将其显示给我的用户。
截至目前,当我使用此代码时:
/* Get All Jobs */
public function getJobs($page) {
$db = new DBConnection;
$str = new str_format;
$validate = new data_validation;
$sql = "SELECT * FROM jobs ORDER BY job_id DESC";
$paginate = new Paginate($db, $sql, $page);
$result = $paginate->get_results();
$jobArr = array();
while($row = $result->fetch_array(MYSQLI_ASSOC)) {
$row = $validate->escapeArray($row);
$job = new Job($db);
$job->$row['job_id'];
$job->$row['job_title'];
$job->$row['date'];
$job->$row['industry'];
$job->$row['company'];
$job->$row['photo'];
$job->$row['content'];
$jobArr[] = $job;
return $jobArr ;
}//close while loop
/*=== build the pagination links ===*/
echo "<div class='pagination_container'>";
echo "<span class='pagination'>";
echo $paginate->show_pages();
echo "</span>";
echo "</div>";
/*=== end build pagination links ===*/
}
我只收到1个条目和一堆看起来像Notice: Undefined property: Job::$4 in /home/hirestar/public_html/builder/classes/job.class.php on line 54
如果该类与它有任何关系,则该类名为Job
。但我似乎无法正常工作。
如何从此功能返回数据库中的所有作业?
答案 0 :(得分:2)
首先,你在while循环中调用return
,所以它会在第一次循环执行时挽救。这就是为什么你只得到一个结果。您应该在while循环后调用return,以便构建整个数组。
其次,由于此代码,您可能会收到Undefined property
错误:
$job->$row['job_id'];
$job->$row['job_title'];
$job->$row['date'];
$job->$row['industry'];
$job->$row['company'];
$job->$row['photo'];
$job->$row['content'];
在这里你可能想做类似的事情:
$job->job_id = $row['job_id'];
现在您要做的是从$job
读取属性,其名称等于$row[*]
的值。所以说row_id
是4,你实质上是在表演:
$job->4;
这显然毫无意义。