Guest Paulo Eduardo Postado Abril 18, 2007 Denunciar Share Postado Abril 18, 2007 Olá pessoal... estou com uma dúvida...Eu tento fzr uma busca no banco mysql... por exemplo "SELECT * FROM table where variavel = \ "$variavel\"";O valor de linhas que está retornando é sempre zero, como se não tivesse o valor cadastrado no banco, mesmo o valor estando cadastrado.. As variaveis que estao no banco são todas VARCHAR(15);já tentei tirar as barras "SELECT* FROM table where variavel = '$varial'"tambem não da certo... é como se ele tivesse varrendo todo o banco e não encontrando valar algum e retornando zero.se eu colocar SELECT * FROM table; aí roda deireitinho.. se alguém ajudar aí, pra que eu possa resolver esse prob. agradecoObrigado!!! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Carlitox Postado Abril 18, 2007 Denunciar Share Postado Abril 18, 2007 "SELECT * FROM table where variavel = ' ".$variavel." ' "experimenta isto. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Renato Penna Postado Abril 18, 2007 Denunciar Share Postado Abril 18, 2007 qual o valor de $variavel ? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Visitante Postado Abril 18, 2007 Denunciar Share Postado Abril 18, 2007 O valor da variavel é recebido via método POST..$selec = "SELECT * FROM EQUIPAMENTOS" where serial = \"$serial\"";onde $serial = $_POST['txserial']; de um formulário...e onde serial no banco é um VARCHAR (15) NOT NULL Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Visitante Postado Abril 18, 2007 Denunciar Share Postado Abril 18, 2007 não deu certo a tentativa "SELECT * FROM table where variavel = ' ".$variavel." ' "apresentando o seguinte erro Parse error: parse error, unexpected T_STRING Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Abril 18, 2007 Denunciar Share Postado Abril 18, 2007 "SELECT * FROM table WHERE variavel = '$variavel'" Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Renato Penna Postado Abril 18, 2007 Denunciar Share Postado Abril 18, 2007 $selec = mysql_query("SELECT * FROM EQUIPAMENTOS where serial = '$serial'"); Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Carlitox Postado Abril 18, 2007 Denunciar Share Postado Abril 18, 2007 $selec = mysql_query("SELECT * FROM EQUIPAMENTOS where serial = '$serial'");eu faço assim e dá bem:selec = mysql_query("SELECT * FROM EQUIPAMENTOS where serial = '".$serial."' "); Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Visitante Postado Abril 18, 2007 Denunciar Share Postado Abril 18, 2007 Cara não sei o que está acontecendooo no meu banco esta cadastrado os seguintes Seriais h343, 123456, 1234556com esse codigo "SELECT * FROM EQUIPAMENTOS where serial = '$serial'"; quando digito o serial 1234556 ele encontra direitonho.mas para todos os outros não encontra... o codigo é esse<?$conec;$bco;$conectou = 0;include "conexao.php"; if ($conectou) { $serial = $_POST['txserial']; $selec = "SELECT * FROM EQUIPAMENTOS where serial = '$serial'"; $resp = mysql_query($selec,$conec); $linhas = mysql_num_rows($resp); if (($resp) and ($linhas)) { $dados = mysql_fetch_array($resp); $equipamento = $dados ['equipamento']; $modelo = $dados['modelo']; $tombamento = $dados['tombamento']; $serial = $dados['serial']; $setor = $dados['setor']; $gerencia = $dados['gerencia']; $status = $dados['status']; $usuario = $dados['usuario']; include "fmaltera02.php"; }else{ include "Equipamentonaoexiste.php"; include "fmaltera01.php"; } } ?> Obrigadooooo!!!!! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Renato Penna Postado Abril 18, 2007 Denunciar Share Postado Abril 18, 2007 (editado) Cara, você tem que verififar se $linhas é maior do que zero.Troque ...if (($resp) and ($linhas)) por ... if (($resp) and ($linhas>0)) se você faz ... if (($resp) and ($linhas)) é o mesmo que ... if (($resp) and ($linhas=1)) que por sua vez é diferente de ... if (($resp) and ($linhas==1)) Editado Abril 18, 2007 por Renato Penna Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Visitante Postado Abril 18, 2007 Denunciar Share Postado Abril 18, 2007 Mas aí é que está... Se linhas for = 0; ele não executa o código abaixo.. sendo que quando ele busca.. ele não acha nada... então linha vai ser zero.. e eu mandei imprimir o valor de linhas echo $linhas.... é sempre zero.... mesmo tando cadastrado no meu bd... eu não sei o que está acontecendo.. pois como eu disse antes.. ele so encontra o valor para o seguinte serial 1234556.... quando eu digito esse serial, o valor de linhas passa a ser um... e executa o restante... ms todos os outros valores não encontra.. não sei o porque...Vlw Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Abril 18, 2007 Denunciar Share Postado Abril 18, 2007 Muda o sinal de = para like Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Visitante Postado Abril 18, 2007 Denunciar Share Postado Abril 18, 2007 Cara não consigo.... Não sei o que está acontecendo não.. mas vo tentar descobrir por aqui... valeu pelas dicas.. se tiverem mas alguma.. =xuso php4, apache e mysql 4.1 Abraco.... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Paulo Eduardo Postado Abril 19, 2007 Denunciar Share Postado Abril 19, 2007 aí pessoal.. alguém conhece uma funcao do mysql chamada TRIM... esse meu porblema parece que pode ser resolvido com essa funcao.. porque quando uma variável é CHAr(25) ele ler todoas os caracteres ate o seu valor no caso 25.. e preenche com valores em branco.. e essa funcao retiras esses valores... se alguém puder ajudar agradecoooo...obrigado!!! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Abril 19, 2007 Denunciar Share Postado Abril 19, 2007 trim retira espeaços em branco no começo ou final de variáveis realmente...basta:<?php $variavel = " OIII DFSDF "; $trinando = trim($variavel); echo "Início:".$variavel."Fim<BR>"; echo "Início:".$trinando."Fim"; ?>Mais detalhes » http://www.php.net/trimPs.: Você deveria ter usado varchar no campo... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Paulo Eduardo Postado Abril 19, 2007 Denunciar Share Postado Abril 19, 2007 C fala usar varchar no campo da minha tabela??? se for, eu uso varchar sim ...esa funcao é do php ou do mysql??? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Renato Penna Postado Abril 19, 2007 Denunciar Share Postado Abril 19, 2007 trim é usado nos dois (PHP e MySQL) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Paulo Eduardo Postado Abril 19, 2007 Denunciar Share Postado Abril 19, 2007 então no meu caso no codigo.. antes de fzr a consulta no banco, eu tenho que fzr por exemplo$serial2 = $_POST['txserial']; $serial = trim($serial2);e dpois fzr a consulta???obs... o campo na minha tabela é varchar(20) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Renato Penna Postado Abril 19, 2007 Denunciar Share Postado Abril 19, 2007 faça isso ou faça no próprio banco mesmo. trim(coluna) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Paulo Eduardo Postado Abril 19, 2007 Denunciar Share Postado Abril 19, 2007 aí pessoall... Conseguii... executei o seguinte comando no banco "update tabela set coluna=trim(coluna);Vlw pela ajuda!!!t+++ Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Abril 19, 2007 Denunciar Share Postado Abril 19, 2007 Uma solução seria usar na query o ... WHERE campo LIKE '$variavel%'...Ps.: Se for possível mude seu campo de char para varchar, senão você vai estar consumindo recursos desnecessários guardando informação a toa.. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Paulo Eduardo Postado Abril 19, 2007 Denunciar Share Postado Abril 19, 2007 Mas o meu campo é varchar.... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Abril 19, 2007 Denunciar Share Postado Abril 19, 2007 Mas mais acima você disse que o campo era CHAR(25)... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Renato Penna Postado Abril 19, 2007 Denunciar Share Postado Abril 19, 2007 (editado) Edgar ...Hoje, 09:37obs... o campo na minha tabela é varchar(20) Editado Abril 19, 2007 por Renato Penna Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Paulo Eduardo Postado Abril 19, 2007 Denunciar Share Postado Abril 19, 2007 não não... sempre foi VARCHAR(20)agora olha so... ele funciona se eu for no banco e executar o comando.. se eu cadastrar algo na tabela.. eu tenho que e la e executaro camando.. como que eu faco pra isso não acontecer? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Abril 19, 2007 Denunciar Share Postado Abril 19, 2007 A ok... só tinha lido a parte de cima... de qualquer maneira é mais inteligente remover o que foi inserido a mais quando era char do que usar trim apenas para o sistema funcionar... Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Guest Paulo Eduardo
Olá pessoal... estou com uma dúvida...
Eu tento fzr uma busca no banco mysql... por exemplo
"SELECT * FROM table
where variavel = \ "$variavel\"";
O valor de linhas que está retornando é sempre zero, como se não tivesse o valor cadastrado no banco, mesmo o valor estando cadastrado..
As variaveis que estao no banco são todas VARCHAR(15);
já tentei tirar as barras "SELECT* FROM table where variavel = '$varial'"
tambem não da certo... é como se ele tivesse varrendo todo o banco e não encontrando valar algum e retornando zero.
se eu colocar SELECT * FROM table; aí roda deireitinho..
se alguém ajudar aí, pra que eu possa resolver esse prob. agradeco
Obrigado!!!
Link para o comentário
Compartilhar em outros sites
34 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.