我目前正在编写一个脚本,以列出我的数据库中的所有团队,列表内将是团队支付信息我有两个功能,这两个功能在显示数据时需要注意。代码如下:
$teams = $teams->team_list();
foreach ($teams as $team) {
$payments = $teams->fetch_team_payment_info($team['team_id']);
echo $team['team_id'];
}
$team->team_list()工作没有任何错误,并做它应该做的事情,然而
$payments = $teams->fetch_team_payment_info($team_id);
没有。
我已经使用下面的代码正确设置了$teams类: $teams = new teams($g8b_db);
$teams->entryYear = $system->get_entry_year();
class teams {
private $db;
public $entryYear;
public function __construct(Database $db) {
$this->db = $db;
}
public function team_list() {
$sql = "SELECT td.*, CONCAT(me.First_Name,' ', me.Surname) AS managers_full_name, me.Telephone AS managers_telephone
FROM `team_details` td
JOIN `members` me
ON me.id = td.managers_user_id
WHERE td.entry_year = '" . $this->entryYear. "'";
$registered_teams = $this->db->fetch_all_array($sql);
return $registered_teams;
}
public function fetch_team_payment_info($team_id) {
$fetch_payments = $this->db->fetch_array_assoc($this->db->query("SELECT `method`, `account_holder`, `date` FROM `payments` WHERE `team_id`='".$team_id."'"));
$team = $this->db->fetch_all_array("SELECT `status` FROM `team_details` WHERE `team_id`='".$team_id."'");
if ($team['status']=="0") {
$status_text = "Marked As Unpaid";
} elseif ($team['status']=="1") {
$status_text = "Marked As Paid";
} elseif ($team['status']=="2") {
$status_text = "Rejected";
}
$payment_method = $fetch_payments['method'];
$payment_account_holder = $fetch_payments['account_holder'];
$payment_date = $fetch_payments['date'];
$payment_text = "".$payment_method." by ".$payment_account_holder." on ".$payment_date."";
if ($payment_method == "Paypal") {
$label_end_payment = "primary";
}
if ($payment_method == "Bank Transfer") {
$label_end_payment = "info";
}
$payment_label = '<a class="label label-'.$label_end_payment.'" data-placement="bottom" tabindex="0" role="button" data-toggle="popover" data-toggle="popover" data-trigger="focus" title="Payment Method" data-content="'.$payment_text.'">'.$payment_method.'</a>';
$data = array(
'payment_label' => $payment_text,
'status' => $status_text
);
return $data;
}
}
我不明白为什么这个错误会显示如果team_list工作。
如果您对这个问题有任何帮助,我将不胜感激。
你在循环中重新分配了$teams。
team_list()
没有返回"teams"类,所以你会得到一个错误。
有很多方法可以修复它,这里是其中之一:
foreach ($teams->team_list() as $team) {
$payments = $teams->fetch_team_payment_info($team_id);
echo $team['team_id'];
}