需要帮助使sql数据可用于数学函数php

时间:2012-09-10 02:43:36

标签: php mysql oop math web-applications

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

id  user_id date    gross   net federal state   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;
}

正如你们许多人可能已经猜到的那样,我是如何收到上述功能的数据的。

Array ( [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 ) Array ( [id] => 2 [user_id] => 1 [date] => 2012-08-16 [gross] => 433.11 [net] => 353.09 [federal] => 39.44 [state] => 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循环,而循环,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 个答案:

答案 0 :(得分: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;