2012-02-26 14 views
2

私のコードでmysql_fetch_objectを使用していますが、インスタンスを作成しようとしているオブジェクトがコンストラクタを持っているため、エラーが発生しています。mysql_fetch_object()関数のPHP class_nameパラメータ

次のようにエラーがある:Warning: Missing argument 1 for Ratio::__construct() in /Users/Alex/Sites/All Good Things/_manage/c/c_ratio.php on line 9

私が理解できます。ここRatioコンストラクタのコードです:

while ($currentRatio = mysql_fetch_object(
           $ratio_rs, 
           'Ratio', 
           array(
            <VALUE OF NAME>, 
            <VALUE OF X>, 
            <VALUE OF Y>))) 

function __construct($new_name, $new_x, $new_y) 
{ 
    $this->name = $new_name; 
    $this->x = $new_x; 
    $this->y = $new_y; 
} 

はとにかく、どのように私はちょうど私が何を行うにはどのような機能、すなわち、に作成した結果から変数を渡す行うには、次のようなものです

この3番目のパラメータに必要な構文の例は見つかりません。

+0

3番目のパラメータは、アウトラインのように、コンストラクタパラメータの配列です。以前からではなく、プロパティがデータベースから設定された後にコンストラクタが呼び出されるように注意してください。 'name'が列の場合は、まずデータベースからデータを取り出し、コンストラクタをパラメータで呼び出すと、' name'がコンストラクタコードで上書きされます。おそらくそれはすでに意図されているというだけです。 – hakre

答えて

2

カラムエイリアスを使用します。列の別名は、クエリの作成方法によって異なります。エイリアス(asによる)を使用する場合はエイリアスである必要があります。そうでない場合は列名を使用します。以下の例を参照してください。

$ratio_rs = mysql_query("SELECT Name, x as `X`, y as `Y` from ..."); 
mysql_fetch_object($ratio_rs, 
    'Ratio', 
    array(
     'Name', 
     'X', 
     'Y' 
    ) 
); 
+0

それは素晴らしいです、ありがとうございます。 – Alex

関連する問題