2

好的,我正在尝试通过 user_id 从多行中获取数据,然后将这些值作为单独的数组实例化到我的“Checks”类中。首先,我将向您展示我的 sql 设置。

id user_id date 总净额 联邦州 ssi other_pay other_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);  
}

,并且我尝试与那些搞乱以使它们与数组一起使用,但也没有运气。我认为这是因为如果这个谜题的开头部分丢失了,其余部分也不会组合在一起。我在这里不知所措。正如我之前所说,我试图将它们放入类变量中,这样我就可以对它们进行数学运算(即总、平均等)。这是我正在开发的预算应用程序。任何帮助将不胜感激。即使这是一种完全不同的方式,对我来说可能不会那么混乱,我至少会试一试。如果您需要更多信息,请随时询问。我没有展示的两个功能几乎是不言自明的。再次感谢!

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 回答