如何返回内连接查询结果

时间:2013-03-20 08:10:20

标签: php mysql oop

我有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;

2 个答案:

答案 0 :(得分:1)

在“select”查询中,为字段名称使用别名。

注册

答案 1 :(得分:1)

在你的情况下:

您将结果作为对象而非数组提取。我总是拿一个数组,所以我的第一个答案不明确。

如果您的查询如下所示:

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