1

「name」オブジェクトを表示しようとしていますが、うまくいきません。foreach を間違って使用しているようです. $a に対して print_r を実行すると、配列が表示されます。誰か助けてくれませんか。

public function product(){
        $st = $this->db->prepare("select id, name, description, price from deals where quantity > 0 order by id desc");
        $st->execute();

        if ($st->rowCount() == 0){
            echo "There are no products to display";
        } else {
            $a = $st->fetch(PDO::FETCH_OBJ)

            foreach ($a as $products){
                echo $products->name;
            }
        }
    }
4

2 に答える 2

3

あなたがしていることに foreach ループは必要ないと思います。

while( $products = $st->fetch(PDO::FETCH_OBJ) )
{
    echo $products->name;
}
于 2012-06-26T12:16:15.367 に答える
1

fetch() は 1 行のみを返します。foreach は、fetch() によって返されるオブジェクトのすべてのプロパティ、つまり列名をループしています。

于 2012-06-26T12:19:35.590 に答える