0

データベースのデータを表示しようとしていますが、何が間違っているのか知りたいです。

クラス:

class Information {

    protected $info;

    protected $sinfo;

    public function __construct()
    {
        $this->db = new Config;

        $r = $this->db->query('SELECT * FROM categories');

        while($row = $r->fetch_array())
        {
            $this->info[] = $row;
        }

    }

    public function getCategory()
    {
        return $this->info;
    }

    public function getCategoryTitle($category_title)
    {
        echo $category_title;
    }

    public function getListing($category_id)
    {

        $s = $this->db->query("SELECT * FROM listings WHERE category_id = $category_id");

        while($sow = $s->fetch_array())
        {
            $this->sinfo[] = $sow;
        }
        return $this->sinfo;
    }

    public function getListingTitle($listing_title)
    {
        echo $listing_title;
    }

}   

表示情報:

$display_listings = new Info();

foreach ($display_listings->getCategory() as $row) 
{
    $display_listings->getCategoryTitle($row['category_title']);

    foreach ($display_listings->getListing($row['category_id']) as $sow)
    {
        $display_listings->getListingTitle($sow['listing_title']);
    }
}

これは次のことを示しています。

カテゴリー1

リスト1

カテゴリー2

リスト1

リスト2

カテゴリー3

リスト1

リスト2

リスト3

表示したい:

カテゴリー1

リスト1

カテゴリー2

リスト2

カテゴリー3

リスト3

4

1 に答える 1

2

たぶん、これをgetListingの先頭に置いてみてください。

$this->sinfo = '';

配列は以前の値を保持しているようです。

于 2012-04-05T01:55:15.470 に答える