parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

че-то я опять уперся.... это как-раз то мне надо, что обычно делается по другому?

Larrikin 05.07.2004 05:27

надо вывести несколько (сейчас шесть) таблиц из базы...
#это возвращает таблицу из шести значений, проблем тут нет...
  $map[^getMaps[$level1.map_table;$level1.map_table_result;$level1.ago]]
#это рожает таблицу юзеров (около десятка), тоже проблем нету...
  $user[^getPpl[$level.auser_id;$level1.ago;$level1.result]]
  $ago[^date::now(-$level1.ago)]
#здесь получаются даты за последние 14 дней, на которые есть данные...
  $tr[
    ^pSQL.sql[table]{
      SELECT
      DISTINCT
        date
      FROM
        $level1.result
      WHERE
        date >= '^ago.sql-string[]'
      ORDER BY
        date
    }
  ]
  ^map.menu{
    $stat[
      ^pSQL.sql[hash]{
        SELECT
          date
          ,auser_id
          ,score
          ,death
          ,point
        FROM
          $level1.result
        WHERE
          map_id = '$map.id'
        GROUP BY
          date
#        DESC
      }
    ]
    <h1>
      $map.sname
    </h1>
    <table border="1">
      <tr>
        <td>
          Дата
        </td>
        <td>
          ^user.menu{
            $user.name
          }[</td><td>]
        </td>
      </tr>
      <tr>
        ^tr.menu{
          <td>
            <nobr>
              ^dtf:format[<font size="-1"><i>%A</i>, %d %h;$tr.date;$dtf:rs-locale</font>]
            </nobr>
          </td>
          <td>
            ^user.menu{
#############################################################################
# Вот сюда надо бы вставить значение из хеша
#$stat.[$tr.date].[$user_auser_id].score
#$stat.[$tr.date].[$user_auser_id].death
#$stat.[$tr.date].[$user_auser_id].point
#############################################################################

#              $user.name
            }[</td><td>]
          </td>
        }[</tr><tr>]
        
      </tr>
    </table>
  }
там немного "мусора" оставил, чтобы понятно стало, что число колонок и столбцов переменное, генерится с помощью .menu{}
и как это решается правильно? ибо пока я понимаю только, что надо внутри
^tr.menu{} получать хеши каждый раз... это десятки запросов к базе, однако...

и, на всякий случай, структура таблицы
CREATE TABLE `level1_result` (
  `auser_id` int(10) NOT NULL default '0',
  `date` date NOT NULL default '0000-00-00',
  `map_id` tinyint(4) NOT NULL default '0',
  `score` tinyint(4) NOT NULL default '0',
  `death` tinyint(4) NOT NULL default '0',
  `point` tinyint(4) NOT NULL default '0',
  PRIMARY KEY  (`map_id`,`date`,`auser_id`)
)