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


Партнерская программа Kredov

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

#1 Alex1231

Alex1231
  • Пользователь
  • 27 сообщений
  • Репутация: 0
0

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

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

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

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

 

 

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

  • 0

robot

robot
  • Пользователь PRO
  • 2 652 сообщений
  • Репутация: 85
Советую обратить внимание на следующее:
  1. Помогите: Нужно вывести последние записи из SQL
  2. Php-запрос к MYSQL для вывода случайной строки
  3. PHP или SQL
  4. Вывести данные из БД в таблицу
  5. Неправильно выводятся стили из-за PHP запроса

#2 miketomlin

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

Отправлено 08 Июль 2015 - 08:13

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


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

  • 0

#3 Alex1231

Alex1231
    Topic Starter
  • Пользователь
  • 27 сообщений
  • Репутация: 0

Отправлено 08 Июль 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
  • Пользователь
  • 261 сообщений
  • Репутация: 35

Отправлено 08 Июль 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
  • 2 165 сообщений
  • Репутация: 436

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

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


  • 0

#6 miketomlin

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

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

Например?
  • 0

#7 Alex1231

Alex1231
    Topic Starter
  • Пользователь
  • 27 сообщений
  • Репутация: 0

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

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

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


  • 0

#8 Ixman

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

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

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


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

  • 0

#9 Alex1231

Alex1231
    Topic Starter
  • Пользователь
  • 27 сообщений
  • Репутация: 0

Отправлено 09 Июль 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 Июль 2015 - 18:23

  • 0

#10 miketomlin

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

Отправлено 09 Июль 2015 - 21:21

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

robot

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


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