/**
  * Gets an issue list based on the given parameters.
  *
  * @param array $p_parameters
  *    An array of ComparisonOperation objects
  * @param string $p_order
  *    An array of columns and directions to order by
  * @param integer $p_count
  *    The count of answers.
  *
  * @return array $debateAnswerAttachmentsList
  *    An array of Attachment objects
  */
 public static function GetList(array $p_parameters, $p_order = null, $p_start = 0, $p_limit = 0, &$p_count)
 {
     global $g_ado_db;
     if (!is_array($p_parameters)) {
         return null;
     }
     // adodb::selectLimit() interpretes -1 as unlimited
     if ($p_limit == 0) {
         $p_limit = -1;
     }
     // sets the where conditions
     foreach ($p_parameters as $param) {
         $comparisonOperation = self::ProcessListParameters($param);
         if (empty($comparisonOperation)) {
             continue;
         }
         if (strpos($comparisonOperation['left'], 'debate_nr') !== false) {
             $debate_nr = $comparisonOperation['right'];
         }
         if (strpos($comparisonOperation['left'], 'debateanswer_nr') !== false) {
             $debateanswer_nr = $comparisonOperation['right'];
         }
     }
     $sqlClauseObj = new SQLSelectClause();
     // sets the columns to be fetched
     $tmpDebateAnswerAttachment = new DebateAnswerAttachment($language_id, $debate_nr);
     $columnNames = $tmpDebateAnswerAttachment->getColumnNames(true);
     foreach ($columnNames as $columnName) {
         $sqlClauseObj->addColumn($columnName);
     }
     // sets the main table for the query
     $mainTblName = $tmpDebateAnswerAttachment->getDbTableName();
     $sqlClauseObj->setTable($mainTblName);
     unset($tmpDebateAnswerAttachment);
     if (empty($debateanswer_nr) || empty($debate_nr)) {
         return;
     }
     $sqlClauseObj->addWhere("fk_debate_nr = " . $g_ado_db->escape($debate_nr));
     $sqlClauseObj->addWhere("fk_debateanswer_nr = " . $g_ado_db->escape($debateanswer_nr));
     if (!is_array($p_order)) {
         $p_order = array();
     }
     // sets the ORDER BY condition
     $p_order = count($p_order) > 0 ? $p_order : self::$s_defaultOrder;
     $order = self::ProcessListOrder($p_order);
     foreach ($order as $orderColumn => $orderDirection) {
         $sqlClauseObj->addOrderBy($orderColumn . ' ' . $orderDirection);
     }
     $sqlQuery = $sqlClauseObj->buildQuery();
     // count all available results
     $countRes = $g_ado_db->Execute($sqlQuery);
     $p_count = $countRes->recordCount();
     //get the wanted rows
     $debateAnswerAttachments = $g_ado_db->Execute($sqlQuery);
     // builds the array of debate objects
     $debateAnswerAttachmentsList = array();
     while ($debateAnswerAttachment = $debateAnswerAttachments->FetchRow()) {
         $debateAnswerAttachment = new Attachment($debateAnswerAttachment['fk_attachment_id']);
         if ($debateAnswerAttachment->exists()) {
             $debateAnswerAttachmentsList[] = $debateAnswerAttachment;
         }
     }
     return $debateAnswerAttachmentsList;
 }