Search counting result

1

I search for a certain term and show the result, which is correct, now I need to show the quantity of each product by category, for example, search for the term "chair."

COZINHA (10)
DORMITÓRIO (05)

My search for the term looks like this:

mysql_select_db($database_conexao, $conexao);
$query_rsBusca = "SELECT marca.descricao AS marca, 
                         produtos.id_produto, 
                         produtos.id_departamento,
                         produtos.id_subdepartamento,
                         produtos.id_marca, 
                         produtos.descricao AS prodDesc, 
                         produtos.codigo_msb 
                    FROM produtos INNER JOIN marca ON (produtos.id_marca = marca.id_marca) 
                   WHERE (produtos.descricao LIKE '%".$pesquisa."%')  OR 
                         (produtos.resumo LIKE '%".$pesquisa."%')     OR 
                         (produtos.codigo_msb LIKE '%".$pesquisa."%') OR 
                         (produtos.detalhes LIKE '%".$pesquisa."%')   OR 
                         (marca.descricao LIKE '%".$pesquisa."%') $ordena ";
// echo $query_rsBusca;
$rsBusca = mysql_query($query_rsBusca, $conexao) or die(mysql_error());
$row_rsBusca = mysql_fetch_assoc($rsBusca);
$totalRows_rsBusca = mysql_num_rows($rsBusca);

Then I made a new registry set to show the categories and their values, it looks like this:

mysql_select_db($database_conexao, $conexao);
$query_rsSoma = "SELECT 
                      departamento.descricao AS descricao,
                      COUNT(*) AS Registros
                    FROM
                      departamento 
                      INNER JOIN produtos ON (produtos.id_departamento = departamento.id_departamento)
                      INNER JOIN marca ON (produtos.id_marca = marca.id_marca)
                    WHERE
                      (produtos.descricao LIKE '%".$pesquisa."%')  OR 
                      (produtos.resumo LIKE '%".$pesquisa."%')     OR 
                      (produtos.codigo_msb LIKE '%".$pesquisa."%') OR 
                      (produtos.detalhes LIKE '%".$pesquisa."%')   OR 
                      (marca.descricao LIKE '%".$pesquisa."%'))
                    GROUP BY
                      departamento.id_departamento";
$rsSoma = mysql_query($query_rsSoma, $conexao) or die(mysql_error());
$row_rsSoma = mysql_fetch_assoc($rsSoma);
$totalRows_rsSoma = mysql_num_rows($rsSoma);    

But when I run query , my server reports the following error:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use
     

near ') GROUP BY department.id_department' at line 13.

    
asked by anonymous 01.02.2015 / 13:29

1 answer

1

I was able to solve my problem, there was a ")" at the end of the command, see how the complete Query was corrected.

mysql_select_db($database_conexao, $conexao);
$query_rsBusca = "SELECT marca.descricao AS marca, 
                         produtos.id_produto, 
                         produtos.id_departamento,
                         produtos.id_subdepartamento,
                         produtos.id_marca, 
                         produtos.descricao AS prodDesc, 
                         produtos.codigo_msb 
                    FROM produtos INNER JOIN marca ON (produtos.id_marca = marca.id_marca) 
                   WHERE (produtos.descricao LIKE '%".$pesquisa."%')  OR 
                         (produtos.resumo LIKE '%".$pesquisa."%')     OR 
                         (produtos.codigo_msb LIKE '%".$pesquisa."%') OR 
                         (produtos.detalhes LIKE '%".$pesquisa."%')   OR 
                         (marca.descricao LIKE '%".$pesquisa."%') $ordena ";
// echo $query_rsBusca;
$rsBusca = mysql_query($query_rsBusca, $conexao) or die(mysql_error());
$row_rsBusca = mysql_fetch_assoc($rsBusca);
$totalRows_rsBusca = mysql_num_rows($rsBusca);

mysql_select_db($database_conexao, $conexao);
$query_rsSoma = "SELECT 
                      departamento.descricao AS descricao,
                      COUNT(*) AS Registros
                    FROM
                      departamento 
                      INNER JOIN produtos ON (produtos.id_departamento = departamento.id_departamento)
                      INNER JOIN marca ON (produtos.id_marca = marca.id_marca)
                    WHERE
                      (produtos.descricao LIKE '%".$pesquisa."%')  OR 
                      (produtos.resumo LIKE '%".$pesquisa."%')     OR 
                      (produtos.codigo_msb LIKE '%".$pesquisa."%') OR 
                      (produtos.detalhes LIKE '%".$pesquisa."%')   OR 
                      /* AQUI TINHA UM ')' A MAIS */ 
                      (marca.descricao LIKE '%".$pesquisa."%')
                    GROUP BY
                      departamento.id_departamento";
$rsSoma = mysql_query($query_rsSoma, $conexao) or die(mysql_error());
$row_rsSoma = mysql_fetch_assoc($rsSoma);
$totalRows_rsSoma = mysql_num_rows($rsSoma);

Thanks for the help and tips.

    
01.02.2015 / 18:36