Ir para conteúdo

POWERED BY:

Arquivado

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

IsmaelAndres

[Resolvido] Problema com variavel em consulta Mysql

Recommended Posts

Olá!

 

Estou precisando fazer uma consulta em uma tabela Mysql e estou com o seguinte probema:

 

Se eu fazer uma consulta assim funciona:

$sql = mysql_query ("SELECT * FROM produtos WHERE produto= 'Nome do produto") or die (mysql_error());
$cl = mysql_fetch_array($sql, MYSQL_ASSOC);

echo $cl['id'];

Mas se eu usar um conjunto de variaveis como critério da pesquisa, não funciona:

$var1 = "Nome";
$var2 = "do";
$var3 = "produto";

$variavel = $var1." ".$var2." ".$var3;

$sql = mysql_query ("SELECT * FROM produtos WHERE produto= '$variavel'") or die (mysql_error());
$cl = mysql_fetch_array($sql, MYSQL_ASSOC);

echo $cl['id'];

Alguém ajuda eu aí? deve ser coisa simples.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente deixar a query assim:

 

$sql = mysql_query ("SELECT * FROM produtos WHERE produto= '".$variavel."'") or die (mysql_error());
$cl = mysql_fetch_array($sql, MYSQL_ASSOC);

PErceba que foi adicionado aspas e ponto antes e depois da variavel "$variavel". Veja se dá certo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente deixar a query assim:

 

$sql = mysql_query ("SELECT * FROM produtos WHERE produto= '".$variavel."'") or die (mysql_error());
$cl = mysql_fetch_array($sql, MYSQL_ASSOC);

PErceba que foi adicionado aspas e ponto antes e depois da variavel "$variavel". Veja se dá certo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você ta passando mais de uma referência em uma variável só e isso não é permitido...

 

basta apenas uma, tipo:

 

$variavel = 'valor';

$sql = mysql_query ("SELECT * FROM produtos WHERE produto='$variavel'") or die (mysql_error());
$cl = mysql_fetch_array($sql, MYSQL_ASSOC);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valew Alaerte.. mas eu preciso concatenar uma string e usar essa string concatenada para fazer a consulta.

 

Tenho um site de vendas e estou fazendo um sistema de busca por balanças, o usuario deve escolher em uma combo box a capacidade e em outra o tamanho para eu poder listar as balanças que ele quer... então tenho que juntar essas informações (capacidade + tamanho) em uma string para fazer a consulta no mysql. E é isso que ta dando erro... precisa fazer a busca no mysql usando uma concatenação de strings.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok.

 

É o seguinte: tenho um site de venda de balanças, e estou fazendo um sistema de busca para ajudar o usuario a encontrar a balança que procura. Para fazer essa busca irei precisar de 2 informações: capacidade de pesagem e tamanho da plataforma. Essas informações serão passadas através de um combobox.

 

No meu banco de dados mysql, na tabela produtos, tenho cadastrado as informações sobre as balanças. Então eu preciso fazer um SELECT na tabela produtos onde o nome do produto for "MODELO DA BALANÇA + CAPACIDADE DE PESAGEM + TAMANHO DA PLATAFORMA."

 

Sabendo que as variaveis fornecidas são:

$modelo = "Toledo";

$capacidade = "15kg";

$tamanho = "30 x 20 cm";

 

 

Ex. 1 = Assim não funciona!

$modelo = $_POST['modelo'];
$capacidade = $_POST['capacidade'];
$tamanho = $_POST['tamanho'];

$variavel = $modelo." ".$capacidade." ".$tamanho;

$sql = mysql_query ("SELECT * FROM produtos WHERE produto= '$variavel'") or die (mysql_error());
$cl = mysql_fetch_array($sql, MYSQL_ASSOC);

echo $cl['id'];

Ex. 2 = Assim funciona

$sql = mysql_query ("SELECT * FROM produtos WHERE produto= 'Toledo 15kg 30 x 20 cm'") or die (mysql_error());
$cl = mysql_fetch_array($sql, MYSQL_ASSOC);

echo $cl['id'];

Sacou? se eu já der masticadinho o valor que contem nas variaveis ali no "where produto" funciona de boa. Mas quando é para pegar o mesmo conteudo que está em uma variavel formada de outras 3 ele já não funciona.

 

Valew!

Compartilhar este post


Link para o post
Compartilhar em outros sites

$modelo = "Toledo";
$capacidade = "15kg";
$tamanho = "30 x 20 cm";

$valor = "Toledo";
$valor .="15kg";
$valor .="30 x 20 cm";
Assim funciona

Compartilhar este post


Link para o post
Compartilhar em outros sites

A variável completa (var1 + var2 + var3) está igualzinha ao nome do produto no banco de dados? Talvez o nome passado não esteja igual ao nome cadastrado..só uma hipótese...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já tentou imprimir a query que está tentando executar ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

A variável está identica ao que está cadastrado no banco de dados. se eu imprimir a variavel e copiar ela, entrar no mysql e procurar com a busca do browser ela acha idêntica.... já tentei mudar o nome das variaveis na posibilidade de ser um conflito e nada. Nunca vi disso..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aleluia!!! até que enfim consegui corrigir...

 

o problema é havia um espaço no final da variavel $capacidade passada via GET.. passei um "trim" nas variaveis e ta bombando...

 

Valew

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.