1

我有一些来自 2 个数据库的数据,我想返回到屏幕所以通常我会执行以下操作:

foreach($this->seminar->readSubscription() as $value) {
    $this->content .= '<tr>';
    $this->content .= '<td>'.$value->title.'</td>';

    $value->title is then the title from a table.

但现在我需要来自 2 个不同表的 2 个不同的 id,所以我尝试了类似的东西

$value->seminar->id;

或类似的东西:

$value->seminar.id;

但似乎没有任何想法?

这是我的查询:

$result = $this->getDb()->query($query);
    $values = array();
    while(($row = $result->fetchObject()) !== false) {
        $values[] = $row;
    }
    return $values;
4

2 回答 2

2

在你的情况下:

您将结果作为对象而不是数组获取。我总是取一个数组,所以我的第一个答案不清楚。

如果您的查询如下所示:

SELECT a.`name` as name1, a.`otherthing`, d.`name` as name2 
FROM  `ploatjens` AS a
LEFT JOIN  `mapjens` AS d ON a.`dir` = d.`id` 

请注意,a.name 和 d.name 具有相同的别名,因此我使用as newname它们都给它们一个唯一的别名。

然后你可以像这样访问对象:

//your loop
$name_of_a = $value->name1;
$name_of_b = $value->name2;
$other = $value->otherthing;
//end of your loop

当然,当使用 fetch 数组时,您可以使用以下方式访问:

//your loop
$name_of_a = $value['name1'];
$name_of_b = $value['name2'];
$other = $value['otherthing'];
//end of your loop
于 2013-03-22T14:02:40.580 回答
1

在您的“选择”查询中,为您的字段名称使用别名。

注册

于 2013-03-20T08:14:08.137 回答