Все данные таблицы отражать в отчетах
#1
Отправлено 25 Июнь 2015 - 10:18
Как перенести, те отражать в отчетах все данные таблицы?
#2
Отправлено 25 Июнь 2015 - 10:23
#3
Отправлено 25 Июнь 2015 - 10:34
// Здесь подготовливаем данные для вывода в отчете
$sqlQuery="SELECT sum(f290) as sum FROM ".DATA_TABLE."300 WHERE f280='Процессор'";
$result = mysql_query($sqlQuery);
$row = mysql_fetch_array($result);
$data['sum'] = $row['sum'];
$data['ozu'] = $row['f260'];
$data['name'] = $row['f270'];
// Переносим переменные в отображение;
$smarty->assign("data", $data['sum']);
$smarty->assign("data", $data['ozu']);
$smarty->assign("data", $data['name']);
#4
Отправлено 25 Июнь 2015 - 10:39
<tr>
<td>
Сумма</td>
<td>
ОЗУ</td>
<td>
Наименование</td>
</tr>
<tr>
<td>
{$data.sum}</td>
<td>
{$data.ozu}</td>
<td>
{$data.name}</td>
</tr>
</table>
На выходе пустой отчет.
#5
Отправлено 25 Июнь 2015 - 11:03
$sqlQuery = "SELECT * FROM ".DATA_TABLE."200";
$res = sql_query($sqlQuery);
$row = sql_fetch_array($res);
$data1 = $row['f210'];
$data2 = $row['f220'];
$data3 = $row['f230'];
$data4 = $row['f240'];
$smarty->assign("date1", $date1);
$smarty->assign("date2", $date2);
$smarty->assign("date3", $date3);
$smarty->assign("data4", $data7);
Отображение:
<table class="mainTable" align="center" cellspacing="0" cellpadding="0" style="width:70%; background-color:#F0F0F0;">
<tr>
<td>
Наименование</td>
<td>
Процессор</td>
<td>
ОЗУ</td>
<td>
Сумма</td>
</tr>
<tr>
<td>
{$data1}</td>
<td>
{$data2}</td>
<td>
{$data3}</td>
<td>
{$data4}</td>
</tr>
</table>
Показывает данные первого строка, причем только суммы.
#6
Отправлено 25 Июнь 2015 - 11:16
#7
Отправлено 25 Июнь 2015 - 11:17
Цитата
Так потому что у вас в подготовке данных из запроса берется только первая строка, и она же единственная передается в отображение. Если необходимо вывести несколько строк, используйте цикл по записям, вначале в подготовке, для формирования массива записей:
$sqlQuery = "SELECT * FROM ".DATA_TABLE."200";
$result = sql_query($sqlQuery);
while ($row = sql_fetch_array($result))
{
$lines[] = $row;
}
$smarty->assign("lines", $lines);
а затем при выводе, в отображении данных:
<table class="mainTable" align="center" cellspacing="0" cellpadding="0" style="width:70%; background-color:#F0F0F0;">
<tr>
<td>Наименование</td>
<td>Процессор</td>
<td>ОЗУ</td>
<td>Сумма</td>
</tr>
{foreach from=$lines item=data}
<tr>
<td>{$data.f210}</td>
<td>{$data.f220}</td>
<td>{$data.f230}</td>
<td>{$data.f240}</td>
</tr>
{/foreach}
</table>
#8
Отправлено 25 Июнь 2015 - 11:25
#9
Отправлено 25 Июнь 2015 - 11:47
только где ОЗУ в свойстве указан как текст, но там значение в мегабайт числовые данные, в отображениях какие то левые данные выводит?
#10
Отправлено 25 Июнь 2015 - 12:17
#11
Отправлено 25 Июнь 2015 - 12:28
#12
Отправлено 25 Июнь 2015 - 14:27
Цитата
Так вы же сами выше написали что это "текст". Для полей связи это нормально, там хранится id связанной записи, т.е. чтобы вытащить нужное значение, необходим запрос к связанной таблице.
#13
Отправлено 25 Июнь 2015 - 14:32
#14
Отправлено 25 Июнь 2015 - 14:51
$sqlQuery = "SELECT * FROM ".DATA_TABLE."200";
$result = sql_query($sqlQuery);
while ($row = sql_fetch_array($result))
{
$sqlQuery = "SELECT * FROM ".DATA_TABLE."111 WHERE id=".$row['f230']; // вместо 111 подставляете id связанной таблицы
$result2 = sql_query($sqlQuery);
$row2 = sql_fetch_array($result2);
$row['f230'] = $row2['f222']; // вместо 222 подставляете id нужного поля из связанной таблицы
$lines[] = $row;
}
$smarty->assign("lines", $lines);
#15
Отправлено 26 Июнь 2015 - 05:50
Дай Вам Бог Здоровье, Удачи!
#16
Отправлено 26 Июнь 2015 - 06:43
#17
Отправлено 26 Июнь 2015 - 09:28
$sqlQuery = "SELECT * FROM ".DATA_TABLE."200 WHERE status=0";
#18
Отправлено 26 Июнь 2015 - 12:03
Количество пользователей, читающих эту тему: 6
0 пользователей, 6 гостей, 0 анонимных













