Обратный порядок отображения элементов в PHP

Я хочу инвертировать порядок этих элементов, когда они отображаются в моем меню:

function buscarSubCateg($categ_id) {

    global $con;

    $buscar_subcateg = "SELECT * FROM subcateg WHERE categ_id = '$categ_id'";

    $run_subcateg = mysqli_query($con, $buscar_subcateg);

    $i=0;
    while ($row_subcateg = mysqli_fetch_array($run_subcateg)) {

        $subcateg_id = $row_subcateg['subcateg_id'];
        $subcateg_name = $row_subcateg['subcateg_name'];

        echo '<div class = "sectionSub"><a class = "linkSubCatergoria" href = "#">'.$subcateg_name.'</a></div>'.buscarTipos($subcateg_id);
        $i++;
    }
}

function buscarTipos($subcateg_id) {

    global $con;

    $buscar_tipo = "SELECT * FROM tipoprod WHERE subcateg_id = '$subcateg_id'";

    $run_tipo = mysqli_query($con, $buscar_tipo);

    while ($row_tipo = mysqli_fetch_array($run_tipo)) {

        $tipo_id = $row_tipo['tipoprod_id'];
        $tipo_name = $row_tipo['tipoprod_name'];

        echo "<div class='sectionTipo'><a class='linkTipo' href='#'>$tipo_name</a></div>";

    }
}

В этом эхо:

echo '<div class = "sectionSub"><a class = "linkSubCatergoria" href = "#">'.$subcateg_name.'</a></div>'.buscarTipos($subcateg_id);` 

Я хочу, чтобы результат функции buscarTipos() отображался после $subcateg_name. Сейчас происходит обратное: сначала отображается результат buscarTipos(), а затем - $subcateg_name.

Спасибо.

Измените порядок запросов mysql.

Strom 11.12.2018 03:30
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
1
27
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Замените текущий код следующим:

function buscarSubCateg($categ_id) {

    global $con;

    $buscar_subcateg = "SELECT * FROM subcateg WHERE categ_id = '$categ_id'";

    $run_subcateg = mysqli_query($con, $buscar_subcateg);

    $i=0;
    while ($row_subcateg = mysqli_fetch_array($run_subcateg)) {

        $subcateg_id = $row_subcateg['subcateg_id'];
        $subcateg_name = $row_subcateg['subcateg_name'];
        $tip = buscarTipos($subcateg_id);
        echo $tip;
        echo '<div class = "sectionSub"><a class = "linkSubCatergoria" href = "#">'.$subcateg_name.'</a></div>';
        $i++;
    }
}

function buscarTipos($subcateg_id) {

    global $con;

    $buscar_tipo = "SELECT * FROM tipoprod WHERE subcateg_id = '$subcateg_id'";

    $run_tipo = mysqli_query($con, $buscar_tipo);
    $str = '';
    while ($row_tipo = mysqli_fetch_array($run_tipo)) {

        $tipo_id = $row_tipo['tipoprod_id'];
        $tipo_name = $row_tipo['tipoprod_name'];

        $str = $str."<div class='sectionTipo'><a class='linkTipo' href='#'>$tipo_name</a></div>";

    }
    return $str;
}

Я поставил <br> в конце и начал, но тоже не сработало

Pedro Todorovski 11.12.2018 00:14

Спасибо, чувак, все сработало отлично! Мне просто нужно было инвертировать эхо в первой функции. ;)

Pedro Todorovski 11.12.2018 00:30

У меня еще нет разрешения

Pedro Todorovski 11.12.2018 00:34

Попробуйте изменить строку №34

echo "<div class='sectionTipo'><a class='linkTipo' href='#'>$tipo_name</a></div>";

в

return "<div class='sectionTipo'><a class='linkTipo' href='#'>$tipo_name</a></div>";

Тогда вызывающая функция будет повторять эхо sectionSub перед повторением sectionTipo.

Или измените свой SQL на

$sql = 'select a.categ_id, a.subcateg_id, b.tipoprod_id, b.tipoprod_name
from subcateg as a, tipoprod as b where categ_id='$categ_id' 
and a.subcateg_id = b.subcateg_id';

и полностью теряют второстепенную функцию. Это заставляет MySQL выполнять соединение между двумя вашими таблицами, и с ним на порядок легче работать.

Какое исправление вы выбрали? Надеюсь, это было переписать функцию и переписать SQL.

Dougie 11.12.2018 09:24

Другие вопросы по теме