PostgreSQL отображает данные, полученные из запроса - PullRequest
0 голосов
/ 20 октября 2011

Я строю инструмент анализа данных в php.Я запрашиваю наш производственный сервер Postgres и отображаю данные.

Я выполняю свой запрос на выборку (дата передается как переменная) в цикле, который отображает вывод, подобный этому:

1-я итерация:

Country     sum(yesterday)  
India       4500  
Southafrica 5000  

2-я итерация:

country     sum(day before)  
India       5000  
Southafrica 7000  
Japan       4000    

Я хочу отобразить это в виде таблицы.

Country         yesterday   daybefore  
India           4500        5000  
Southafrica     5000        7000    
Japan           empty       4000  

Я написал DAL на основе этого урока

http://net.tutsplus.com/tutorials/php/simple-php-class-based-querying/

любая помощь будет отличной.

Query sample : this is run twice in a loop where $date = array('1','2')                                                                                                                                              
query : select c.country_name, sum(tf.tx_amount_usd)
from
table1 tf,
table2 tp,
table3 d,
table4 c
where
tf.condition = tp.condition
and d.day = current_date-$date      
group by 1,2 order by 2

Выборка данных:

$results = array();
while ($row = pg_fetch_array($res)){
    $result = new DALQueryResult();
    foreach ($row as $k=>$v){
        $result->$k = $v;
    }

    $results[] = $result;
}
return $results;

Отображение данных:

<code>$dal = new DAL(); 
$dates = array('1','2');                                                         
foreach ($dates as $date)  {
    $results = $dal->get_trans_by_date($date);
    echo "<h1>Data</h1>";
    // check if there were any results
    if ($results) {
        // cycle through results
        foreach ($results as $model) {
            /* echo "<pre>";print_r($results);echo "
"; * / echo" $ model-> country_name ".number_format ($ model-> sum, 2). "";}} else {// Вывести сообщение об отсутствии данных echo "

No Query Output.

";}}

1 Ответ

0 голосов
/ 20 октября 2011

Немного неясно, что вы пытаетесь сделать. Все эти теги, и мы не знаем, запрашиваете ли вы для построения таблиц данные в PHP или делаете это немедленно в Postgres.

Предполагая, что вы имеете в виду Postgres, вот один из способов добиться того, чего вы хотите:

@> SELECT name AS country, yesterday_sum, daybefore_sum \
   FROM countries C \
   INNER JOIN iteration2 A ON C.id = A.country \
   LEFT JOIN iteration1 B ON C.id = B.country;

   country   | yesterday_sum | daybefore_sum
-------------+---------------+---------------
 India       |          4500 |          5000
 Southafrica |          5000 |          7000
 Japan       |               |          4000
(3 rows)

(я создал таблицы и вставил тестовые данные в соответствии с вашим выводом)

Но опять же, из-за расплывчатого вопроса, я не уверен, что это то, о чем вы просите, поэтому это всего лишь выстрел.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...