Я хочу инвертировать порядок этих элементов, когда они отображаются в моем меню:
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.
Спасибо.






Замените текущий код следующим:
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> в конце и начал, но тоже не сработало
Спасибо, чувак, все сработало отлично! Мне просто нужно было инвертировать эхо в первой функции. ;)
У меня еще нет разрешения
Попробуйте изменить строку №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.
Измените порядок запросов mysql.