Поиск подсчет результатов


Делаю поиск определенного срока и показываю результат, который является правильным, теперь мне нужно показать количество каждого продукта, категория, например, поиск по слову "стул".

COZINHA (10)
DORMITÓRIO (05)

мой поиск термином выглядел так:

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 
                      (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);    

, Но при запуске query, "мой сервер" обвиняет следующее ошибка:

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 отдел.id_departamento' at line 13.

 1
Author: eightShirt, 2015-02-01

1 answers

Удалось решить мою проблему, был в запасе ")" в конце строки, посмотрите, как он стоял Query полной коррекции.

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);

Спасибо за помощь и советы.

 1
Author: adventistapr, 2015-02-01 17:36:47