0

ペットのデータベースがあり、基本的にペットの詳細を ID で表示したいと考えています。これが私のコントローラーメソッドのようなものです:

public function details()
{
    $this->load->model('animalsmodel');
    $row = $this->animalsmodel->details($this->uri->segment(3));
    $this->load->view('shared/header');
    $this->load->view('animals/details', $row);
    $this->load->view('shared/footer');
}

そしてAnimalsModel、関連する行を取得するためのコードは次のとおりです。

function details($animalId) {
    $q = $this->db->query('SELECT Animals.Name, Animals.DateAdmitted, Animals.FoundDescription, Animals.Description, Animals.Neutered, Animals.DateNeutered, Types.Name AS Type, Healthchecks.CheckInfo FROM Animals LEFT JOIN Types ON Animals.TypeId = Types.TypeId LEFT JOIN Healthchecks ON Animals.HealthcheckId = Healthchecks.HealthcheckId WHERE Animals.AnimalId = ?', $animalId);
    if ($q->num_rows() > 0)
    {
        $row = $q->row();
        return $row;
    } else
    {
        echo "No Results Man!!";
    }
}

そのMySQLクエリをphpMyAdminで手動で実行しましたが、うまくいき、正しい行が得られました。

編集:var_dump() $row オブジェクトに対して実行したところ、次の結果が得られました。

object(stdClass)#17 (8) { ["Name"]=> string(6) "Quemby" ["DateAdmitted"]=> string(10) "2013-01-28" ["FoundDescription"]=> string(94) "The story of how I got to be here. Phasellus ornare. Fusce mollis. Duis sit amet diam eu dolor" ["Description"]=> string(65) "massa non ante bibendum ullamcorper. Duis cursus, diam at pretium" ["Neutered"]=> string(1) "0" ["DateNeutered"]=> string(10) "0000-00-00" ["Type"]=> string(3) "Dog" ["CheckInfo"]=> string(26) "a, facilisis non, bibendum" }

それで、私は自分の列を持っているようです!しかし、なぜ CI はUndefined variable: row:(

4

2 に答える 2