Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Juliano Gomes

resgatar o valor de uma variavel

Recommended Posts

Salve galera!

 

tenho um combo box dentro de um form... nele eu pego do banco de dados valores referentes a marca de carros.

<select name="marcas" id="marcas" style="border-color: #000000; border-width: 1; border-style: solid; background-color:#FFFFFF; font-size: 10; font-family: verdana; width=130px;" onChange="java script:atualizacarros(this.form);">		<% While NOT Rs.EoF %>		<option value="<% = Rs("CODIGO") %>">		<% = Rs("NOME") %>		</option>		<% Rs.MoveNext %>		<% Wend %>	  </select>

bom, entao no meu código em asp tenho uma variavel que resgata o valor que foi escolhido e joga no select, assim:

 

Marca  = Request.Form("marcas")strSql = "SELECT * FROM veiculos WHERE TIPO LIKE '1' AND MARCA LIKE '" & Marca & "' "

Os problemas são:

 

1. O meu select parece nao estar pegando o valor que foi selecionado no combo box, pois gera o erro:

Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)[MySQL][ODBC 3.51 Driver][mysqld-5.0.22-community-nt]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 'AND MARCA LIKE ''' at line 1/automoveis/tmp.asp, line 225
Linha 225 tem: Set oRS = oConn.Execute ( strSQL )

 

2. trabalhando a sql direto no fron-end eu verifiquei que a ( LIKE '" & Marca & "' " ) tem que ser uma String entre aspas como por exemplo 'peugeot' , e acho que dessa maneira como está não está retornando isso....

 

se alguem puder me ajudar....

 

abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quando for usar like, coloque "%" antes e depois do que você deseja procurar. Assim

Marca  = Request.Form("marcas")strSql = "SELECT * FROM veiculos WHERE TIPO LIKE '1' AND MARCA LIKE '%" & Marca & "%'"

pelo que entendi, acho que é esse o erro

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quando for usar like, coloque "%" antes e depois do que você deseja procurar. Assim

Marca  = Request.Form("marcas")strSql = "SELECT * FROM veiculos WHERE TIPO LIKE '1' AND MARCA LIKE '%" & Marca & "%'"
pelo que entendi, acho que é esse o erro
dae felipe, beleza irmao... seguinte ja havia tentado assim... olha o erro:
Tipo de erro:Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)[MySQL][ODBC 3.51 Driver][mysqld-5.0.22-community-nt]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 'AND CODIGO_MARCA LIKE '%%'' at line 1/automoveis/tmp.asp, line 240
fiz algumas alteraçoes e tudo funciona certinhoo agora, menos duas linhas, que vou comentar no código. vou postar o trecho do codigo com problema....
strSql = "SELECT * FROM veiculos WHERE TIPO LIKE 1"Marca  = Request.Querystring("marcas")if Marca = "Todas as Marcas" ThenstrSql = strSql else' A LINHA ABAIXO GERA AQUELE ERROstrSql = strSql & " AND CODIGO_MARCA LIKE '" & Marca & "'" end if				Modelo  = Request.Querystring("modelos")if Modelo = "Todos os Modelos" ThenstrSql = strSql else' A LINHA ABAIXO GERA AQUELE ERROstrSql = strSql & " AND CODIGO_MODELO LIKE '" & Modelo & "'"end if

Compartilhar este post


Link para o post
Compartilhar em outros sites

strSql = "SELECT * FROM veiculos WHERE TIPO LIKE 1o campo tipo é numerico?se nao for faça o seguintestrSql = "SELECT * FROM veiculos WHERE TIPO = '1'

amigo, o campo é numerico sim... ja ta tudo testado e aprovado ali uhauha...o problema mesmo é só onde esta comentado, ou seja.... onde tem escrito:
' A LINHA ABAIXO GERA AQUELE ERRO
abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

e funcionou like com campo numerico?estranho...e podee ter certeza pelo erro que você colocou o erro nao é ali nao...msg do erro postado"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 'AND CODIGO_MARCA LIKE '%%''"traducao meia boca"você tem um erro na sua sintaxe sql; vereifique no manual corresnpondente a versao do seu servidor mysql para a sintaxe usada proxima a 'AND CODIGO_MARCA LIKE '%%''"geralmente nessas mensagens o erro esta do lado esquerdo do codigo sql em que ele mostra na tela de erro...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quando for usar like, coloque "%" antes e depois do que você deseja procurar. Assim

Marca  = Request.Form("marcas")strSql = "SELECT * FROM veiculos WHERE TIPO LIKE '1' AND MARCA LIKE '%" & Marca & "%'"
pelo que entendi, acho que é esse o erro

sim claro. erro é referente ao post do amigo acima... o erro gerado no meu comentário lá é esse:

 

Tipo de erro:Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)[MySQL][ODBC 3.51 Driver][mysqld-5.0.22-community-nt]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 'AND CODIGO_MARCA LIKE ''' at line 1
pra voce ter uma ideia... se eu comentar (desativar) as duas linhas lá que estão com erro:

 

'strSql = strSql & " AND CODIGO_MARCA LIKE '" & Marca & "'"

'strSql = strSql & " AND CODIGO_MODELO LIKE '" & Modelo & "'"

 

e depois der um Response.write na minha sql pra mostrar o meu select, vai ser retornado o seguinte:

 

Imagem Postada

 

 

se eu fizer esse select direto no front-end ele me retorna certinho os regisros do select...

 

ó ai a estrutura da tabela:

# DBTools DBMYSQL - MySQL Database Dump## USEGOSET FOREIGN_KEY_CHECKS=0;# GO# Dumping Table Structure for veiculos#CREATE TABLE `veiculos` (  `CODIGO` int(11) NOT NULL auto_increment,  `TIPO` int(11) NOT NULL,  `CODIGO_MARCA` int(11) NOT NULL,  `CODIGO_MODELO` int(11) NOT NULL,  `COR` varchar(50) NOT NULL,  `NOME` varchar(50) NOT NULL,  `ANO` varchar(4) NOT NULL,  `VALOR` decimal(15,2) NOT NULL,  `OPCIONAIS` varchar(300) default NULL,  `FOTO` varchar(100) character set latin1 collate latin1_bin default NULL,  `UNIDADE_VENDA` varchar(50) default NULL,  PRIMARY KEY  (`CODIGO`)) ENGINE=InnoDB DEFAULT CHARSET=latin1;# GO#SET FOREIGN_KEY_CHECKS=1# GO

Compartilhar este post


Link para o post
Compartilhar em outros sites

codigo marca é int e você esta utlizando aspas simples na consulta sql e com isso da o errocorreção:strSql = strSql & " AND CODIGO_MARCA = " & Marca obs: variavel marca nao pode estar vazia.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tipo de erro:Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)[MySQL][ODBC 3.51 Driver][mysqld-5.0.22-community-nt]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 'AND CODIGO_MARCA = AND CODIGO_MODELO =' at line 1/automoveis/tmp.asp, line 237

 

Marca  = Request.Querystring("marcas")if Marca = "Todas as Marcas" ThenstrSql = strSql elsestrSql = strSql & " AND CODIGO_MARCA = " & Marca end if		Modelo  = Request.Querystring("modelos")if Modelo = "Todos os Modelos" ThenstrSql = strSql elsestrSql = strSql & " AND CODIGO_MODELO = " & Modeloend if

 

 

 

linha 237 tem: Set oRS = oConn.Execute ( strSQL )

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.