Что не так с этим предложением WHERE в MYSQL? - PullRequest
0 голосов
/ 26 августа 2011

Пожалуйста, мне нужна помощь!

Не имеет значения, куда я положил этот пункт: ГДЕ romaneios_detalhes.id_romaneio = '. $ Idr.'он всегда возвращает синтаксическую ошибку ... Я пробовал с и без "table_name.", после и до всех сеансов моего отчета, с запятыми и без них ... ничего не работает, и я уверен, что решение довольно простое ...

Как правильно и правильно написать это?

$sql3   =   'SELECT
         produtos_linhas.linha AS `COUNT(linha)`,
         produtos_tipos.tipo AS `COUNT(tipo)`, 
         COUNT(romaneios_detalhes.quantidade) AS `COUNT(quantidade)` 
         FROM romaneios_detalhes
         WHERE romaneios_detalhes.id_romaneio = '.$idr.'
         INNER JOIN produtos ON romaneios_detalhes.codigo = produtos.codigo
         INNER JOIN produtos_linhas ON produtos.id_linha = produtos_linhas.id
         INNER JOIN produtos_tipos ON produtos.id_tipo = produtos_tipos.id
         GROUP BY produtos_linhas.linha, produtos_tipos.tipo ';

echo '<p>'.$sql3.'</p>';
/* OUTPUT OF THIS ECHO:
SELECT produtos_linhas.linha AS `COUNT(linha)`, produtos_tipos.tipo AS `COUNT(tipo)`, COUNT(romaneios_detalhes.quantidade) AS `COUNT(quantidade)` FROM romaneios_detalhes WHERE romaneios_detalhes.id_romaneio = 3 INNER JOIN produtos ON romaneios_detalhes.codigo = produtos.codigo INNER JOIN produtos_linhas ON produtos.id_linha = produtos_linhas.id INNER JOIN produtos_tipos ON produtos.id_tipo = produtos_tipos.id GROUP BY produtos_linhas.linha, produtos_tipos.tipo
*/

$qry3   =   mysql_query($sql3) or die ($qry3_err.mysql_error());

Ответы [ 3 ]

5 голосов
/ 26 августа 2011

Проблема в том, что ваше предложение WHERE находится не в том месте;должно быть после ваших предложений JOIN.

1 голос
/ 26 августа 2011

Икар и Брайан правы, двигайтесь ГДЕ ниже СОЕДИНЕНИЙ.

Просто замечание, я надеюсь, что $ idr не окажется незащищенным от параметра? Или чего-то еще, или вы будете уязвимы для внедрения SQL.

1 голос
/ 26 августа 2011

Проблема в том, что ВНУТРЕННИЕ СОЕДИНЕНИЯ ДОЛЖНЫ идти перед предложением where!

Вы должны переместить предложение where в конце, перед тем, как группа на.

...