select S.*,
(select S1.location from services S1 where S1.main = S.main and (S1.list is null or S1.list = '')) head_index
from services S
order by head_index, S.list is null or S.list = '' desc, S.location is null or S.location = '' desc, S.location
$sql = "select S.*,
(select S1.location from services S1 where S1.main = S.main and (S1.list is null or S1.list = '')) head_index
from services S
order by head_index, S.list is null or S.list = '' desc, S.location is null or S.location = '' desc, S.location";
$res = mysqli_query($conn, $sql);
$cat_index = 0;
while($row = msqli_fetch_assoc($res))
{
if(is_null($row['list']))
{
if($cat_index > 0)
echo '</ul>'; // закрытие списка
echo '<p>'.$row['main'].'</p><ul>'; // название категории, начало списка
$cat_index++; // считаем категорию, чтобы правильно закрывать списковые теги
}
else
{
echo '<li>'.$row['list'].'</li>';
}
}
if($cat_index > 0)
echo '</ul>'; // закрытие списка
$sql = "select S.*,
(select min(S.id) from services S1 where S1.main = S.main) min_id
from services S
order by min_id, S.list is null desc, S.location is null desc, S.location";
$res = mysql_query($sql);
$cat_index = 0;
while($row = mysql_fetch_array($res)) {
if(is_null($row['list']))
{
if($cat_index > 0)
echo '</ul>'; // закрытие списка
echo '<p>'.$row['main'].'</p><ul>'; // название категории, начало списка
$cat_index++; // считаем категорию, чтобы правильно закрывать списковые теги
}
else
{
echo '<li>'.$row['list'].'</li>';
}
}
if($cat_index > 0)
echo '</ul>'; // закрытие списка
select S.*,
(select min(S.id) from services S1 where S1.main = S.main) min_id
from services S
order by min_id, S.list is null desc, S.location is null desc, S.location
$ma = "select S.*,
(select min(S1.id) from services S1 where S1.main = S.main) min_id
from services S
order by min_id, S.list is null desc, S.location is null desc, S.location";
$res = mysql_query($ma);
$num = 1;
while($row = mysql_fetch_assoc($res)) {
$num++;
if($num > 0) {
echo "<ul>";
//
if($row['list'] == "") {
echo '<p><b>'.$row['main'].'</b></p>';
} else {
echo '<li>'.$row['list'].'</li>';
}
echo "</ul>";
}
}
<ul><p><b>Цветы</b></p></ul>
<ul><li>Розы</li></ul>
<ul><li>Ромашки</li></ul>
<p><b>Цветы</b></p>
<ul>
<li>Розы</li>
<li>Ромашки</li>
...
</ul>
<ul>
<li>
<b>Цветы</b>
<ul>
<li>Розы</li>
<li>Ромашки</li>
...
</ul>
</li>
<li>
<b>Животные</b>
<ul>
<li>Коровы</li>
<li>Козы</li>
...
</ul>
</li>
...
<ul>
Вот теперь надо сделать location это расположение, теперь надо вныдрить это в группу в main, чтобы я погла передвигать расположения целой группы., я так понимаю подгруппа расположение работает:)
(select S1.location from services S1 where S1.main = S.main) min_id
$se = "
SELECT s.*,
(
SELECT s1.location FROM services s1 WHERE s1.main = s.main
) heading
FROM services s
ORDER BY
heading,
s.list IS NULL DESC,
s.location IS NULL DESC,
s.location
";
$serv = mysql_query($se);
select S.*,
(select S1.location from services S1 where S1.main = S.main and (S1.list is null or S1.list = '')) head_index
from services S
order by head_index, S.list is null or S.list = '' desc, S.location is null or S.location = '' desc, S.location
$se = "
SELECT s.*,
(
SELECT s1.location
FROM
services s1
WHERE
s1.main = s.main AND
(
s1.list IS NULL OR s1.list = ''
)
) heading
FROM services s
ORDER BY
heading,
s.list IS NULL OR s.list = '' DESC,
s.location IS NULL OR s.location = '' DESC,
s.location
";
$serv = mysql_query($se);
$serv_not = mysql_num_rows($serv);
//Проверяем имеются ли сервисы в базе
if ($serv_not != 0) {
$num = 0;
while($service = mysql_fetch_assoc($serv)) {
$num++;
//
if($service['list'] == "") {
echo '
<p><b>'.$service['main'].'</b></p>
';
} else {
echo '
<div class="checkbox">
<label for="CardsForm'.$service['type_name'].'_'.$num.'">
<input type="checkbox" name="CardsForm['.$service['type_name'].'][]" value="1" id="CardsForm'.$service['type_name'].'_'.$num.'">
<span>'.$service['list'].'</span>
</label>
<div class="location">
<span>=</span><input type="text" name="CardsForm['.$service['type_name'].'_location][]" value="" placeholder="Место">
</div>
</div>
';
}
}
} else {
echo "Список пуст";
}