2

さて、user_idによって複数の行からデータを取得しようとしています。次に、それらの値を個別の配列として「Checks」クラスにインスタンス化します。最初に、SQLの設定を示します。

iduser_iddateグロスネット連邦州ssiother_payother_deduct other_tax_deduct company check_no
 1 1 2012-07-26 434.88 354.39 40.70 15.71 18.27 0.00 6.31 0.00 K-VA-TT 3209181
2 1 2012-08-16 433.11 353.09 39.44 15.61 18.19 0.00 6.28 0.00 K-VA-TT 3230201

(一種のクラスター化されていますが、要点はわかります。私は写真を持っていましたが、投稿できませんでした。)

さて、これでデータをPHPに呼び出すために使用しているコードです。

public function get_field($user) {
    global $database;
    $result = $database->query("SELECT * FROM ".static::$tablename." WHERE user_id=".$user);
    $field_data = array();
    $index = 0;
    while($row = mysql_fetch_assoc($result)) {
        $field_data[$index] = $row;
        $index++;
    }
    return $field_data;
}

そして、おそらく多くの人が推測しているように、私が上記の関数からデータをどのように受け取るか。

配列([id] => 1 [user_id] => 1 [date] => 2012-07-26 [gross] => 434.88 [net] => 354.39 [federal] => 40.70 [state] => 15.71 [ssi ] => 18.27 [other_pay] => 0.00 [other_deduct] => 6.31 [other_tax_deduct] => 0.00 [company] => K-VA-TT [check_no] => 3209181)配列([id] => 2 [user_id] =>1[日付]=>2012-08-16[グロス]=>433.11[ネット]=>353.09[連邦]=>39.44[州]=>15.61 [ssi] => 18.19 [other_pay] => 0.00 [ other_deduct] => 6.28 [other_tax_deduct] => 0.00 [company] => K-VA-TT [check_no] => 3230201) 

私はそれを私のクラスに終わらせたいです

public date = array(2012-07-26, 2012-08-16);
public $gross = array(434.88, 433.11)
ect..

データを別の方法で取得する必要があるのか​​、後でフォーマットする必要があるのか​​わかりません。forループ、whileループ、foreachを埋め込んでみましたが、うまくいかないようです。インスタンス化機能もあります

private static function instantiate($record) {
    $class_name = get_called_class();
    $object     = new $class_name;

    foreach($record as $attribute=>$value) {
        if($object->has_attribute($attribute)) {
            $object->$attribute = $value;
        }
    }
    return $object;
}

を使用します

private function has_attribute($attribute) {
    // get_object_vars returns an associative array with all attributes
    // (incl. private ones!) as the keys and their current values as the value
    $object_vars = get_object_vars($this);
    // we don't care about the value, we just want to know if the key exists
    // will return true or false
    return array_key_exists($attribute, $object_vars);  
}

、そして私はそれらを配列で動作させるためにそれらをいじってみましたが、そこにも運がありませんでした。これは、このパズルの最初のピースの1つが欠落していると、残りのピースも合わないためだと思います。私はここで途方に暮れています。前に言ったように、私はそれらをクラス変数に入れて、それらに対して数学を実行できるようにしようとしています(つまり、合計、平均など)。これは、私が開発している予算作成アプリ用です。どんな助けでも大歓迎です。これを行うのはまったく別の方法であり、私にとってはそれほど混乱しないかもしれませんが、少なくとも試してみます。さらに詳しい情報が必要な場合は、お気軽にお問い合わせください。私が示しなかった2つの関数は、ほとんど自明です。再度、感謝します!

4

1 に答える 1

0

このコードの変更は、あなたのためにトリックを行うはずです:

$date = array();
$gross= array();
// all the other columns.........like this

while($row = mysql_fetch_assoc($result)) {
    $date[] = $row['date'];
    $gross[] = $row['gross'];
    // other columns ...... like this
}

$filled_data =array ();
$filled_data[] =$date;
$filled_data[]=$gross;
// other arrays ...........

return $filled_data;
于 2012-09-10T04:09:23.350 に答える