No MySql, estou precisando de um SQL para fazer os seguintes testes no WHERE
Primeiro: Testar se a tabela1.codigo é igual a tabela2.codigo e tabela1.subcodigo é igual a tabela2.subcodigo
Segundo: Testar se a tabela2.codigocidade é igual ao parâmetro $codigocidade e tabela2.codigocidade = tabela3.codigocidade
Terceiro: Testar se a tabela2.codigoestado é igual ao parâmetro $codigoestado e tabela2.codigoestado igual a tabela4.codigoestado
O meu SQL abaixo funciona quando é passado um código para os parâmetros $codigocidade e $codigoestado, mas quando o parâmetro é vazio seja ele em ambos ou somente no $codigocidade gera um erro "Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in".
select tabela1.*, tabela2.*, tabela3.*, tabela4.*
from tabela1, tabela2, tabela3, tabela4
where
(tabela1.codigo = tabela2.codigo and tabela1.subcodigo = tabela2.subcodigo) and (tabela2.codigocidade = '$codigocidade' and tabela2.codigocidade = tabela3.codigocidade) and (tabela2.codigoestado = '$codigoestado' and tabela2.codigoestado = tabela4.codigoestado)
O que devo fazer para resolver este problema de parâmetro vazio? Pois o visitante do site pode lista por estado, estado e cidade ou simplesmente lista todos os registros.
Agradeço desde já.
- Fórum WMO
- → Viewing Profile: Tópicos: DiversaoRJ
Community Stats
- Group Usuários
- Active Posts 2
- Profile Views 469
- Member Title Novato no fórum
- Age Age Unknown
- Birthday Birthday Unknown
-
Sexo
Não informado
0
Neutral
User Tools
Friends
DiversaoRJ hasn't added any friends yet.
Latest Visitors
-
Guest
04/11/2007, 03:49
Topics I've Started
Parâmetros Mysql Com Php
04/04/2007, 21:26
Consulta Em 4 Tabelas Em Uma única Query
13/02/2007, 21:03
Olá, esta ocorrendo um erro no meu SQL. Preciso colocar em uma única query uma consulta de 4 tabelas.
Minhas Tabelas para esta consulta e seus campos:
Tabela: anuncio - Campos: codigo, subcodigo, sequencia, url, visualizacao, categoria1, categoria2, status, plano, extra
Tabela: cidade - Campos: codigo, nomecidade
Tabela: estado - Campos: codigo, sigla
Tabela: empresa - Campos: codigo, subcodigo, sequencia, codigocidade, codigoestado
Bom, a consulta deve mostrar os campos:
- url da tabela anuncio
- nomecidade da tabela cidade
- sigla da tabela estado
Existe outros campos envolvidos, mas preferi simplificar para facilitar a leitura.
Sendo que:
- o codigo, subcodigo e sequencia da tabela anuncio deve ser igual da tabela empresa
- o codigo da tabela cidade deve ser igual da tabela empresa campo codigocidade
- o codigo da tabela estado deve ser igual da tabela empresa campo codigoestado
O where deve mostrar:
- somente o parametro igual aos dados dos campos categoria1 ou categoria2 da tabela anuncio
- e status igual a 1
- e visualizacao menor que (plano + extra)
- e informar qual o registro atual e limitar o numero do registro na pagina.
Abaixo o meu SQL no Banco de Dados MySql:
select
anuncio.codigo, anuncio.subcodigo, anuncio.sequencia, anuncio.url, anuncio.visualizacao,
cidade.nomecidade,
estado.sigla
from anuncio
inner join ((cidade inner join empresa on cidade.codigo = empresa.codigocidade)
inner join estado on empresa.codigoestado = estado.codigo) on ((anuncio.codigo = empresa.codigo) and
(anuncio.subcodigo = empresa.subcodigo) and
(anuncio.sequencia = empresa.sequencia))
where
(anuncio.categoria1 = '$categoria' or anuncio.categoria2 = '$categoria') and
anuncio.status = '1' and
anuncio.visualizacao < (anuncio.plano + anuncio.extra)
limit $registro, $limite
Obrigado desde já pela ajuda.
Minhas Tabelas para esta consulta e seus campos:
Tabela: anuncio - Campos: codigo, subcodigo, sequencia, url, visualizacao, categoria1, categoria2, status, plano, extra
Tabela: cidade - Campos: codigo, nomecidade
Tabela: estado - Campos: codigo, sigla
Tabela: empresa - Campos: codigo, subcodigo, sequencia, codigocidade, codigoestado
Bom, a consulta deve mostrar os campos:
- url da tabela anuncio
- nomecidade da tabela cidade
- sigla da tabela estado
Existe outros campos envolvidos, mas preferi simplificar para facilitar a leitura.
Sendo que:
- o codigo, subcodigo e sequencia da tabela anuncio deve ser igual da tabela empresa
- o codigo da tabela cidade deve ser igual da tabela empresa campo codigocidade
- o codigo da tabela estado deve ser igual da tabela empresa campo codigoestado
O where deve mostrar:
- somente o parametro igual aos dados dos campos categoria1 ou categoria2 da tabela anuncio
- e status igual a 1
- e visualizacao menor que (plano + extra)
- e informar qual o registro atual e limitar o numero do registro na pagina.
Abaixo o meu SQL no Banco de Dados MySql:
select
anuncio.codigo, anuncio.subcodigo, anuncio.sequencia, anuncio.url, anuncio.visualizacao,
cidade.nomecidade,
estado.sigla
from anuncio
inner join ((cidade inner join empresa on cidade.codigo = empresa.codigocidade)
inner join estado on empresa.codigoestado = estado.codigo) on ((anuncio.codigo = empresa.codigo) and
(anuncio.subcodigo = empresa.subcodigo) and
(anuncio.sequencia = empresa.sequencia))
where
(anuncio.categoria1 = '$categoria' or anuncio.categoria2 = '$categoria') and
anuncio.status = '1' and
anuncio.visualizacao < (anuncio.plano + anuncio.extra)
limit $registro, $limite
Obrigado desde já pela ajuda.
- Fórum WMO
- → Viewing Profile: Tópicos: DiversaoRJ
- Privacy Policy
- Regras ·