![]() |
Задавайте вопросы, мы ответим
Вы не зашли.
добрый день!
У меня к Вам следующий вопрос:
вот часть кода, в которой я делаю выборку из таблицы, после чего вывожу итог на экран.
а как модифицировать запрос, чтобы у меня сумма по полу acres и количество записей выводилась в зависимости от значения значения status?
в поле status только виксированные значения (open, closed)
спасибо всем за помощь,
с уважением, Владимир.
require (".connect.php");
$query2 = "SELECT qq1, qq2, SUM(acres), count(*), status FROM table1 order by status";
$result9 = mysql_query($query2) or die(mysql_error("Error"));
$col1=0;
$ac1=0;
?>
<br />
<table width=780 border="1" cellspacing="0" cellpadding="0" FONT class=body align=center valign=top>
<tr>
<th>qq1</th>
<th>qq2</th>
<th>Total acres</th>
<th>Total lines</th>
<th>Status</th>
</tr>
<?php
while($row = mysql_fetch_array($result9)){
?>
<tr align=center>
<td><?php echo $row['qq1']; ?></td>
<td><?php echo $row['qq2']; ?></td>
<td><?php echo round($row['SUM(acres)'],3); ?></td>
<td><?php echo $row['count(*)']; ?></td>
<td><?php echo $row['status']; ?></td>
</tr>
<?php
$col1=$col1+$row['count(*)'];
$ac1=$ac1+$row['SUM(acres)'];
}
echo "</table>";
echo "total acres =".round($ac1,3)."<BR>";
echo "total lines =".round($col1,0)."<BR>";Отредактированно volodymyr_d (12.07.2010 17:58:23)
Неактивен

GROUP BY status, наверное, Вы имеете в виду?
Неактивен
не совсем. Сейчас у меня запрос выглядит так:
$query2 = "SELECT qq1, qq2, SUM(acres), count(*), status FROM table1 where qq1 = '".$area1."' GROUP BY qq2 order by status";
в итоге я имею таблицу, где считается сумма и кол-во элементов только в конце, а мне надо посчитать суму и кол-во элементов для qq1, qq2, sum(acres) - но для каждого поля status. ( к примеру:
Russia Saratov 512.596 20 closed
Russia Moscow 3.72 1 closed
Ukraine Kiev 28.41 1 closed
Ukraine Lviv 721.437 17 closed
Russia Viborg 1371.88 44 Open
Russia Rostov 1501.139 39 Open
Russia Novgorod 440.517 53 Open
Russia Sochi 3713.16 113 Open)
сколько полей clodes и open соответственно.
спасибо.
Неактивен

Брр, ничего не понимаю
Этот запрос — не такой же, как в изначальном
сообщении. Если второй запрос правильный, то GROUP BY qq2, status.
Ну или приведите структуру таблицы с данными, и то, что хотите получить
на выходе. PHP-обертки писать не надо ![]()
Неактивен
правильных запрос - второй.
я хочу в итого получить отчет следующего вида:
Russia Saratov 512.596 20 closed
Russia Moscow 3.72 1 closed
Ukraine Kiev 28.41 1 closed
Ukraine Lviv 721.437 17 closed
total acres: 1266.163
total lines: 39
Russia Viborg 1371.88 44 Open
Russia Rostov 1501.139 39 Open
Russia Novgorod 440.517 53 Open
Russia Sochi 3713.16 113 Open
total acres: 7026.696
total lines: 249
Неактивен

Вы считаете сумму в PHP, а не в MySQL. Вопросы по PHP обсуждаются на
webew.ru ![]()
Неактивен
спасибо
Неактивен
я попытался решить вопрос так:
$qq1=$qq2=$qq3=$qq4=0;
while($row = mysql_fetch_array($result9)){
if ($row['status']=="Open")
{$qq1=$qq1+$row['count(*)'];
$qq2=$qq2+$row['SUM(acres)'];
}
elseif ($row['status']=="Closed")
{$qq3=$qq3+$row['count(*)'];
$qq4=$qq4+$row['SUM(acres)'];
}но этот вариант меня не устраивает, т.к. надо соблюдать регистр при вводе значений Open, Closed и при других значениях в поле 5 - этот код не будет рабочим.
спасибо за помощь,
с уважением, Владимир.
Неактивен

Можете запоминать предыдущее значение поля. У Вас сортировка по нему, поэтому все одинаковые значения будут рядом.
И я все еще считаю, что php следует обсуждать на webew.ru.
Неактивен