2

私はphp oopが初めてです..フィールドの値を表示するのに問題があります。ここにffクラスがあります。

public static function getAll()
{

    self::conn();

    try
    {

        $sql = "SELECT * FROM dbo.guitar";

        $q = self::$db->prepare($sql);
        $q->execute();
        $results = $q->fetchAll(PDO::FETCH_CLASS | PDO::FETCH_PROPS_LATE,
                "Guitar",
                array('id', 'make', 'model', 'colour', 'price'));

    }
    catch (Exception $e)
    {
        print "Error!: " . $e->getMessage();
    }

    return $results;    
}

差分フィールドから表示したい。これが私のコードです:

$guitars = Guitar::getAll();

を使ってみると値がわかりますprint_r

欲しいものはこんな感じです。

echo $row['field1'];  echo $row['field2']; 

前もって感謝します。

4

1 に答える 1

1

結果をオブジェクトとしてフェッチしているので、次のようにすることができます:

$guitars = Guitar::getAll();
foreach ($guitars as $guitar) {
  echo $guitar->getId();
  echo $guitar->getMake();
  // ... and so on
}

追記:

プロパティを設定するにはコンストラクターが必要であり、プロパティにアクセスするにはパブリック メソッドを提供する必要があります。

class Guitar {
  private $id;
  private $make;
  private $model;
  private $color;
  private $price;

  public function __construct($id, $make, $model, $color, $price) {
    $this->id = $id;
    $this->make = $make;
    $this->model = $model;
    $this->color = $color;
    $this->price = $price;
  }

  public function getId() {
    return $this->id;
  }

  public function getMake() {
    return $this->make;
  }
  // and so on...
}
于 2012-09-24T06:54:05.160 に答える