0

データベースから特定のlistIdを持つすべての投稿を取得したいのですが、最後の投稿のみを取得します。以下はコードです、私は何を間違っていますか?

listModel.phpから:

public function GetListElements($listId) {

    $query = "SELECT le.listElemId, le.listElemName, le.listElemOrderPlace, led.listElemDesc
                FROM listElement AS le
                INNER JOIN listElemDesc as led
                ON le.listElemId = led.listElemId
                WHERE le.listId=?";

    $stmt = $this->m_db->Prepare($query);

    $stmt->bind_param("i", $listId);

    $listElements = $this->m_db->GetListElements($stmt);

    return $listElements;
}

database.phpから:

public function GetListElements(\mysqli_stmt $stmt) {

    if ($stmt === FALSE) {
            throw new \Exception($this->mysqli->error);
    }

    //execute the statement
    if ($stmt->execute() == FALSE) {
            throw new \Exception($this->mysqli->error);
    }

    //Bind the $ret parameter so when we call fetch it gets its value
    if ($stmt->bind_result($listElemId, $listElemName, $listElemOrderPlace, $listElemDesc) == FALSE) {
        throw new \Exception($this->mysqli->error);
    }

    // Hämtar ids och användarnamn och lägger i arrayen.
    while ($stmt->fetch()) {
        $listElements = array('listElemId' => $listElemId,
                             'listElemName' => $listElemName,
                             'listElemOrderPlace' => $listElemOrderPlace,
                             'listElemDesc' => $listElemDesc);
    }

    $stmt->Close();

    return $listElements;    // contains only the last post in the table
}

テーブル

listElement: listElemId、listElemName、listId、listElemDescId、listElemOrderPlace

listElemDesc: listElemDescId、listElemId、listElemDesc

4

1 に答える 1

2

反復ごとに$listElements変数を上書きしています。これを修正するには、配列変数を使用できます。

$listElements = array();
while ($stmt->fetch()) {
    $listElements[] = array('listElemId' => $listElemId,     //notice brackets: []
                         'listElemName' => $listElemName,
                         'listElemOrderPlace' => $listElemOrderPlace,
                         'listElemDesc' => $listElemDesc);
于 2012-10-20T09:39:26.167 に答える