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

もちろん、フェッチ配列を使用する場合は、次を使用してアクセスできます。

//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

'select'クエリでは、フィールド名にエイリアスを使用します。

登録

于 2013-03-20T08:14:08.137 に答える