Mount menu with Filter and Subfilter

3

I'm trying to set up a menu where I should show the Filter and Subfilter, I'm getting the description of the Filter but the Subfilter is not yet.

What is happening is that it starts to mount the subfilter and does not "break" to the next, getting as it is in the visual of the site, the same should look like this:

Tampo
- Vidro
Formato
- Redondo
Largura
- 0,51m - 1,00
- 1,01m - 1,50
Lugares
- 1 lugar
- 2 lugares
Material
- Metal
- Couro Sintético

Echo of id_filtro variables

See how my query is :

if ($dep != ""  and $sub != "") {   

$arrayProdutos = "";
$arrayFiltros = "";

// COMEÇANDO O MENU
while($row_rsPesquisa = mysql_fetch_assoc($rsPesquisa)) {               

    if ($arrayProdutos == "") { 
        $arrayProdutos = $row_rsPesquisa['id_produto'];                     
    } else {
        $arrayProdutos = $arrayProdutos . "," .$row_rsPesquisa['id_produto'];
    }

}

    mysql_select_db($database_conexao, $conexao);
    $query_filtro = "SELECT 
                          filtro.id_filtro,
                          filtro.descricao
                        FROM
                          produtos_filtro_subfiltro
                          INNER JOIN filtro ON (produtos_filtro_subfiltro.id_filtro = filtro.id_filtro)
                        WHERE
                          produtos_filtro_subfiltro.id_produto IN ($arrayProdutos)
                          GROUP BY
                          produtos_filtro_subfiltro.id_filtro";
    $filtro = mysql_query($query_filtro, $conexao) or die(mysql_error());
    $row_filtro = mysql_fetch_assoc($filtro);                                           
    $totalRows_filtro = mysql_num_rows($filtro);

// MOSTRANDO MENU
while($row_filtro = mysql_fetch_assoc($filtro)) {

    // MONTANDO VALORES PARA O SUBFILTRO
    if ($arrayFiltros == "") { 
        $arrayFiltros = $row_filtro['id_filtro'];                       
    } else {
        $arrayFiltros = $arrayFiltros . "," .$row_filtro['id_filtro'];
    }

echo 
  "<ul class='menu2'>
    <li><a href='#'>$row_filtro[descricao]</a></li>
    <li class='current-menu-item'></li>                
  </ul>";   
// FIM DO MENNU                 

    // COMEÇANDO O SUBMENU              
    mysql_select_db($database_conexao, $conexao);
    $query_subfiltro = "SELECT 
                          subfiltro.descricao
                        FROM
                          produtos_filtro_subfiltro
                          INNER JOIN subfiltro ON (produtos_filtro_subfiltro.id_subfiltro = subfiltro.id_subfiltro)
                        WHERE
                          produtos_filtro_subfiltro.id_filtro IN ($arrayFiltros) AND 
                          produtos_filtro_subfiltro.id_produto IN ($arrayProdutos)
                        GROUP BY
                          subfiltro.descricao";
    $subfiltro = mysql_query($query_subfiltro, $conexao) or die(mysql_error());
    $row_subfiltro = mysql_fetch_assoc($subfiltro);                                         
    $totalRows_subfiltro = mysql_num_rows($subfiltro);

    while($row_subfiltro = mysql_fetch_assoc($subfiltro)) {

        $descProdutoSub = $row_subfiltro['descricao'];

    echo 
      "<ul class='menu2'>
        <li><a href='#'>$descProdutoSub</a></li>
      </ul>";
    }

    // FIM DO SUBMENU
}

echo $arrayFiltros;
}

Structure of submenu menu tables:

    
asked by anonymous 30.01.2015 / 22:21

1 answer

1

I was able to solve the problem of my filter menu and subfilter, after hours testing, I realized that what was going wrong was the position of my WHILE, initially I did so:

while($row_rsSubFiltro = mysql_fetch_assoc($rsSubFiltro)) {

}

The command was failing and I did the inversion, thus:

do {

} while($row_rsSubFiltro = mysql_fetch_assoc($rsSubFiltro));

The result can be seen here:

Filter and Subfilter being displayed correctly

    
02.02.2015 / 13:34