好的,我正在尝试通过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);
}
,我已经尝试弄乱那些让他们使用数组,但也没有运气。我认为那是因为如果缺少这个拼图的一个开头,其余部分也不会合在一起。我在这里不知所措。正如我之前所说,我正试图让他们进入类变量,所以我可以对它们进行数学运算(即总数,平均值等)。这是我正在开发的预算应用程序。任何帮助将不胜感激。即使这是另一种方式,这对我来说可能不那么令人困惑,我至少会试一试。如果您需要更多信息,请随时提出。我没有展示的两个功能几乎是自我解释的。再次感谢!
答案 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;