php - 从 php 对象类返回多个数据库行

标签 php mysql arrays

我正在尝试遵循此问题中找到的帮助: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 个条目和一堆类似这样的错误注意:未定义的属性:Job::$4 in/home/hirestar/public_html/builder/classes/job.class.php on line 54

如果与该类有任何关系,该类将被命名为Job。但我似乎无法正常完成这项工作。

如何从此函数返回数据库中的所有作业?

最佳答案

首先,您在 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;

这显然毫无意义。

关于php - 从 php 对象类返回多个数据库行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15099241/

相关文章:

PHP CURL_Multi 检查已完成句柄的状态、删除、添加、超时

arrays - Angular OrderBy 通过子数组中的对象属性

c - C 数组中偶数索引处的元素之和

arrays - 在 Swift 中更新数组中的字符串数量

php - 从第一个表中提取数据并使用其值从其他表中提取数据

php - DirectoryIterator::getBasename 与 DirectoryIterator::getFilename

PHPUnit 强制我在断言实例之前需要类

python - 使用 App Engine 连接到 MySQL 数据库

SQL查询性能问题(多子查询)

php - PDO准备语句麻烦