domanda di progettazione php – sarà di aiuto un aiuto qui?

Devo elencare diversi elementi che provengono da una sorgente di database A e sono: team_id, team_name e team_score (tradotto per ragioni di spiegazione).

Ho bisogno di collegarli e mostrare queste informazioni.

Quindi, ho, dal lato DAO:

public function listOfTeams() { $select = $this->select() ->from(arrays('t'=>'teams'), arrays('cod_team','name','score')); return $this->fetchAll($select); } 

Sul mio controller di squadra:

 public function listAction() { $teamsDao = new TeamsDao(); $this->view->infoTeam = $teamsDao->listOfTeams(); } 

E alla vista:

 <?php for($i = 0; $i < 30; $i++): ?> <?php if(isset($this->infoTeam[$i])): ?> 

Ora, il fatto è che su ciascuno di quegli articoli elencati ho bisogno di aggiungere ulteriori informazioni.

Questa informazione non proviene direttamente da un database, ma è il risultato di alcuni calcoli.

Prendi ad esempio la percentuale di giochi fatti. (Tradotto);

 $totalGamesNumber > 0 ? ($gamesDone*100)/$totalGamesNumber : 0); 

Quindi, ho bisogno di prendere il numero totale di giochi dal database, quindi, per each squadra, ho bisogno di avere il numero di giochi fatto, in modo che possa avere la percentuale da visualizzare.

I $ gamesDone sono ottenuti da:

 $gameTeamDao->countGamesPerTeam($gameVo, $teamVo); 

Sono bloccato qui, perché non riesco a vedere where / come dovrei call e fare il metodo per calcolare la percentuale, al fine di consentire la presentazione della percentuale di giochi completati insieme agli altri dati.

Posso avere un aiuto da questo fango?

Se wheressi scrivere un aiuto per questo, più o less, come sarà?

Grazie in anticipo, MEM

PS – Se hai bisogno di informazioni più dettagliate. Posso fornire Potrei dimenticarmi di qualcosa che per me è preso, ma quello, per chi vuole aiutarlo, non lo è. Quindi fammelo sapere. Grazie mille ancora.

Aggiornamento: tradotto tutti i post in inglese per l'amor di aiuto.

Dato che stai usando ZF, puoi fare tutti questi calcoli nella class della row della tabella. Ecco come. Supponiamo che la class del tuo team si chiami Application_Model_DbTable_Teams.

 class Application_Model_DbTable_Teams extends Zend_Db_Table_Abstract { protected $_name = 'teams'; // table name protected $_id = 'teamId'; // table primary key // rows returned by fetchAll() will be of this class protected $_rowClass = 'Application_Model_DbRow_Teams'; } 

Quindi è necessario creare la class Application_Model_DbRow_Teams in cui verranno inseriti i calcoli aggiuntivi

 class Application_Model_DbRow_Teams extends Zend_Db_Table_Row_Abstract { public $percentGamesDone; public function init() { // This method gets called automatically by ZF when you instantiate a new // object from this class // This is where you will put your extra calculations, // like percentage games done, etc $this->percentGamesDone = $this->getPercentGames(); } public function getPercentGames() { $calculation = 3; // replace this with real data return $calculation; } } 

Una volta che hai fatto questo, puoi semplicemente utilizzare una delle properties; dichiarate della row (come percentGameDone) direttamente dalla vista poiché verranno calcolate proprio quando instanziate le righe.