Перейти к содержимому


Пользователь месяца
TimurR TimurR 1-й за Август
Очков активности: 726 3 темы, 35 сообщений, 11 баллов репутации
ТОП самых активных за этот месяц
  • Фотография ShowPrint
    #1

    ShowPrint (ShowPrint.ru)
    Очков активности: 207 2 темы, 17 сообщений, 6 баллов репутации

  • Фотография Ixman
    #2

    Ixman (o5cat.ru)
    Очков активности: 90 0 тем, 10 сообщений, 6 баллов репутации

  • Фотография WGN
    #3

    WGN (worldgamenews.com)
    Очков активности: 72 Вне конкурса за определение пользователя месяца

  • Фотография magnet
    #4

    magnet (rbfxdirect.com)
    Очков активности: 67.5 Вне конкурса за определение пользователя месяца

  • Фотография BLIK
    #5

    BLIK
    Очков активности: 33 Вне конкурса за определение пользователя месяца

  • Фотография Developer
    #6

    Developer
    Очков активности: 33 2 темы, 16 сообщений, 1 балл репутации

  • Фотография AnnaYa
    #7

    AnnaYa (topbase.ru)
    Очков активности: 33 2 темы, 5 сообщений, 2 балла репутации

  • Фотография Алексей111
    #8

    Алексей111
    Очков активности: 28.5 5 тем, 4 сообщения, 1 балл репутации

  • Фотография TimurR
    #9

    TimurR
    Очков активности: 27 Вне конкурса за определение пользователя месяца

  • Фотография fedornabilkin
    #10

    fedornabilkin (zaka4ano.ru)
    Очков активности: 24 0 тем, 4 сообщения, 4 балла репутации

  • Показать весь ТОП 10

Kwork.ru - услуги фрилансеров от 500 руб.

Поддержите форум! =)
Апдейты
  • Яндекс тИЦ: 19.11.2017
  • Яндекс выдача: 22.09.2018
Топ 5 участников по репутации


Как вывести таблицу на PHP и SQL

#1 Alex1231

Alex1231
  • Неактивные
  • 27 сообщений
  • Репутация: 0
0

Отправлено 08 July 2015 - 07:44

Есть таблица, нужно, чтоб выводилось как на рисунке, раздел и соответствующие ему подразделы, 1, 2, 3, пока получается так что выводится раздел1 и поддраздел1, раздел1 и подраздел 2 , и т.д. Нужно, чтоб выводилось массивом

Прикрепленные изображения

  • табл.PNG
  • это.PNG

 

 

Сообщение отредактировал Alex1231: 08 July 2015 - 07:45

  • 0

#2 miketomlin

miketomlin
  • Пользователь
  • 501 сообщений
  • Репутация: 107

Отправлено 08 July 2015 - 08:13

В запросе сделайте сортировку по разделу в первую очередь, по подразделу во вторую. Затем выводите в цикле подразделы, запоминая текущий раздел. В начале тела цикла, когда происходит смена раздела, выводите его заголовок. Чтобы вывести первый заголовок, перед циклом присвойте переменной раздела 0 (или любое другое отличное от 1 значение, но лучше недопустимое для обозначения раздела в таблице).


Сообщение отредактировал miketomlin: 08 July 2015 - 08:14

  • 0


#3 Alex1231

Alex1231
    Topic Starter
  • Неактивные
  • 27 сообщений
  • Репутация: 0

Отправлено 08 July 2015 - 09:07

<?php 
$res_raz= mysql_query("SELECT id_s, id_n FROM raz ");
while($row_raz = mysql_fetch_assoc($res_raz)){
?>
  <div class="t">
                                    <div class="inhead">
                                         <h3>раздел 1</h3>
                                    </div>
                                    <div class="clear">
                                    </div>
                                    <div class="inbody">
                                         <div class="number-s">
                                         1
                                         </div>
                                         <div class="name-s">
                                         подраздел 1
                                         </div>
                                    </div>
                                    <div class="inbody">
                                         <div class="number-s">
                                         2
                                         </div>
                                         <div class="name-s">
                                        подраздел 2
                                         </div>
                                    </div>    
                              </div>
 <div class="t">
                                    <div class="inhead">
                                         <h3>раздел 2</h3>
                                    </div>
                                    <div class="clear">
                                    </div>
                                    <div class="inbody">
                                         <div class="number-s">
                                         1
                                         </div>
                                         <div class="name-s">
                                         подраздел 1
                                         </div>
                                    </div>
                                    <div class="inbody">
                                         <div class="number-s">
                                         2
                                         </div>
                                         <div class="name-s">
                                        подраздел 2
                                         </div>
                                    </div>    
                              </div>     
    <?php } ?>

А можно поподробнее, я просто в этом деле еще новичок, и не совсем понимаю
id_s раздел, id_n подраздел


  • 0

#4 miketomlin

miketomlin
  • Пользователь
  • 501 сообщений
  • Репутация: 107

Отправлено 08 July 2015 - 09:34

Т.е. совсем не понимаете :)
 
if ($res=mysqli_query($link,'SELECT * FROM `raz` ORDER BY `id_s`,`id_n`))
{
  $i=0;
  while ($row=mysqli_fetch_assoc($res))
  {
    $row['id_s']=intval($row['id_s']);
    if ($row['id_s']!=$i)
    {
      $i=$row['id_s'];
      // вывести заголовок раздела
    }
    // вывести заголовок подраздела
  }
  mysqli_free_result($res);
}

Кавычку закройте в строке запроса.
  • 1


#5 Ixman

Ixman
  • Пользователь PRO
  • 2882 сообщений
  • Репутация: 737

Отправлено 08 July 2015 - 10:29

Всего скорее здесь будет правильнее составить более грамотный sql запрос, который бы формировал нужный массив, а потом его выводить через обычный цикл


  • 0


#6 miketomlin

miketomlin
  • Пользователь
  • 501 сообщений
  • Репутация: 107

Отправлено 08 July 2015 - 11:55

Например?
  • 0


#7 Alex1231

Alex1231
    Topic Starter
  • Неактивные
  • 27 сообщений
  • Репутация: 0

Отправлено 08 July 2015 - 13:52

Т.е. совсем не понимаете
 

Это точно)) Спасибо большое все получилось как надо)


  • 0

#8 Ixman

Ixman
  • Пользователь PRO
  • 2882 сообщений
  • Репутация: 737

Отправлено 08 July 2015 - 13:52

@miketomlin, была бы таблица под руками, я бы поигрался в pma. Хотя ТС и так норм


Сообщение отредактировал Ixman: 08 July 2015 - 13:53

  • 0


#9 Alex1231

Alex1231
    Topic Starter
  • Неактивные
  • 27 сообщений
  • Репутация: 0

Отправлено 09 July 2015 - 18:19

Например?

 

 

У меня еще один вопрос, вот сделал, чтоб выводилось

<?php 
if ($res= mysql_query("SELECT id_s, id_n FROM cat ORDER BY id_s, id_n"))
{ $i=0;
   while($row = mysql_fetch_assoc($res)){
	   $row['id_s']=intval($row['id_s']);
	   if ($row['id_s']!=$i)
	   { $i=$row['id_s']; ?>
                              <div class="t">
                                    <div class="head">
                                         <h3>Раздел <?=$row['id_s']?></h3>
                                    </div>
 <?php }?>
                                 <div class="inbody">
                                         <div class="number-s">
                                         01
                                         </div>
                                         <div class="name-s">
                                         Подраздел <?=$row['id_n']?>
                                         </div>
                                    </div> 
                                </div> 
<?php }?> 
<?php
mysql_free_result($res);
	 } 
	?> 

Теперь проблема, div class=t должен заканчиваться в конце, чтоб выводилась таблица к разделу и подразделу, но при выводе второго раздела, он не отдельно выводится, а в таблице раздела 1, как это можно исправить?


Сообщение отредактировал Alex1231: 09 July 2015 - 18:23

  • 0

#10 miketomlin

miketomlin
  • Пользователь
  • 501 сообщений
  • Репутация: 107

Отправлено 09 July 2015 - 21:21

В самом начале откройте какой-нибудь блок (пусть хотя бы специальный пустой), а в самом конце закройте. Блок с class=t начинайте так:
</div>
<div class="t">
И уберите уже этот лишний </div> (в вашем коде последний)!
  • 0


robot

robot
  • Пользователь PRO
  • 2652 сообщений
  • Репутация: 85


Похожие темы

  Название темы Автор Статистика Последнее сообщение

Оформление форума – IPBSkins.ru