Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Базы Данных > вывод в таблицу из бд


Автор: Paladin111 10.6.2010, 21:55
Привет всем!
Нужна помощь!!!
Имеется бд с данными, необходимо вывести их в таблицу в таком формате:
Код
№|Раздел|Вид|изм|Кол-во|Итоги недели|Пн|Вт|Ср|Чт|Пт|Сб|Сб|Итоги недели|
 |      |   |   |      |предыдущей  |числа и месяц       |текущей     |



Автор: MoLeX 11.6.2010, 05:17
Paladin111, ну так в чем проблема? рисуешь шапку таблицы, затем делаешь запрос и while() вытаскиваешь и отображаешь данные, завершаешь табличку

Автор: Paladin111 11.6.2010, 10:39
Цитата(MoLeX @ 11.6.2010,  05:17)
Paladin111, ну так в чем проблема? рисуешь шапку таблицы, затем делаешь запрос и while() вытаскиваешь и отображаешь данные, завершаешь табличку

Код
$sql = "select * from $table_name group by kind";
$result = mysql_query($sql, $connection);
if (!$result){
  echo "Невозможно выполнить запрос<br>";
   echo $sql."<br>";
   echo mysql_error();}
   while ($row=mysql_fetch_array($result)){
     $id=$row['id'];
     $sect=$row['sect'];
     $kind=$row['kind'];
     $izm=$row['izm'];
     $quan=$row['quan'];
     $data=$row['data'];

     
а дальше не пойму как сделать.
без группировки:
Код

№|Раздел |Вид |изм |Кол-во|Итоги недели|Пн   |Вт   |Ср   |Чт   |Пт   |Сб   |ВС    |Итоги недели|
 |       |    |    |      |предыдущей  |06.07|06.08|06.09|06.10|06.11|06.12|06.13 |текущей     |
1 раздел1 вид1 изм1 130       -         70                                             70
2 раздел2 вид2 изм2 30        -         30                                             30
3 раздел3 вид3 изм3 30        -         30                                             30
4 раздел4 вид4 изм4 50        -         50                                             50
5 раздел5 вид1 изм5 60        -         60                                             60
дата должна подписываться ко дням недели, я не пойму как сделать
С группировкой по виду:
Код

№|Раздел |Вид |изм |Кол-во|Итоги недели|Пн   |Вт   |Ср   |Чт   |Пт   |Сб   |ВС    |Итоги недели|
 |       |    |    |      |предыдущей  |06.07|06.08|06.09|06.10|06.11|06.12|06.13 |текущей     |
1 раздел1 вид1 изм1 130       -         70                                             70
2 раздел2 вид2 изм2 30        -         30                                             30
3 раздел3 вид3 изм3 30        -         30                                             30
4 раздел4 вид4 изм4 50        -         50                                             50
а необходимо с группировкой по виду:
Код

№|Раздел |Вид |изм |Кол-во|Итоги недели|Пн   |Вт   |Ср   |Чт   |Пт   |Сб   |ВС    |Итоги недели|
 |       |    |    |      |предыдущей  |06.07|06.08|06.09|06.10|06.11|06.12|06.13 |текущей     |
1 раздел1 вид1 изм1 130       -         70                60                            130
2 раздел2 вид2 изм2 30        -         30                                              30
3 раздел3 вид3 изм3 30        -         30                                              30
4 раздел4 вид4 изм4 50        -         50                                              50

Автор: Severyanin 15.6.2010, 11:58
Самый простой вариант:
Код

echo "<table>";
while ($row=mysql_fetch_array($result))
{
     echo "<tr>";
     
     echo "<td>".$row['id']."</td><td>".$row['sect']."</td><td>".$row['kind']."</td>";
     
     echo "<td>".$row['izm']."</td><td>".$row['quan']."</td><td>".$row['data']."</td>";
     
     echo "</tr>";
}
echo "</table>";

Автор: Paladin111 16.6.2010, 12:14
Привет всем!!!
А как произвести сравнение в php?
день недели, число и месяц без года у меня
Код

<?php
setlocale(LC_ALL, 'rus');
if ($now == 0) $now += 7;
$now = date('w');
for ($i = 1; $i <= 7; $i++)
echo strftime("<center>%a</center>"."<br>"."%d.%b", strtotime(($i-$now)."day"))."<td width='41' rowspan='2' align='center'>";
?> 

В бд дата в формате к примеру 2010.06.15.
а как сравнить я не знаю, если дата из бд совпадает с датой которая в шапке, то должно под этой датой и напротив вида записывается количество, в противном случае прочерк. А если имеется 2 одинаковых вида, то они должны группироваться, и если у них совпадают даты, то количество должно суммироваться. Я не пойму как это сделать.

Автор: Severyanin 17.6.2010, 08:20
Paladin111,  
Код

if(strtotime("now") == strtotime(bd_date)) echo "Equals";
else echo "Not equals";


Автор: Paladin111 17.6.2010, 11:55
Цитата(Severyanin @ 17.6.2010,  08:20)
Paladin111,  
Код

if(strtotime("now") == strtotime(bd_date)) echo "Equals";
else echo "Not equals";


сравнивать, сравнивает, а вот как записать именно под той датой и напротив вида?

Автор: Severyanin 17.6.2010, 15:49
Paladin111,  поясни, пожалуйста, еще раз, что конкретно ты хочешь получить? И, на мой взгляд, тебе неплохо бы почитать статьи в разделе по верстке

Автор: Paladin111 17.6.2010, 20:51
Цитата(Severyanin @ 17.6.2010,  15:49)
Paladin111,  поясни, пожалуйста, еще раз, что конкретно ты хочешь получить? И, на мой взгляд, тебе неплохо бы почитать статьи в разделе по верстке

В бд имеются записи которые могут совпадать по виду, иногда по дате заполнения формы, мне нужно:
при выводе этих данных из бд в таблицу, и если имеются одинаковые записи (вид), надо чтоб они объединялись, а значения которые относятся к видам записывались по датами.
к примеру:
бд пуста.
делаем запись в бд, дата 17.06.10, название вида: вид6, количество 100.
когда считываем эти значения из бд, они должны выводится:
Код

№|Раздел |Вид |изм |Кол-во|Итоги недели|Пн   |Вт   |Ср   |Чт   |Пт   |Сб   |ВС    |Итоги недели|
 |       |    |    |общее |предыдущей  |14.06|15.06|16.06|17.06|18.06|19.06|20.06 |текущей     |
          вид6                  -                          100                         100  

делаем еще одну запись в бд, дата 19.06.10, название вида: вид6, количество 30
теперь, когда считываем значения из бд, должно получиться:
Код

№|Раздел |Вид |изм |Кол-во|Итоги недели|Пн   |Вт   |Ср   |Чт   |Пт   |Сб   |ВС    |Итоги недели|
 |       |    |    |общее |предыдущей  |14.06|15.06|16.06|17.06|18.06|19.06|20.06 |текущей     |
          вид6                   -                          100          30             130  

если просто группировать у меня получается что одно из значений пропадает.
Добавляем еще одну запись: дата 19.06.10, название вида: вид6, количество 50
должно выводится:
Код

№|Раздел |Вид |изм |Кол-во|Итоги недели|Пн   |Вт   |Ср   |Чт   |Пт   |Сб   |ВС    |Итоги недели|
 |       |    |    |общее |предыдущей  |14.06|15.06|16.06|17.06|18.06|19.06|20.06 |текущей     |
          вид6                   -                          100          80             180  

я не могу понять, как можно это реализовать, чтоб количество соответствовало дате. ((((

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)