Ir para conteúdo
Fórum Script Brasil
  • 0

Erro Em Cunsulta Mysql


Guest Paulo Eduardo

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

Posts Recomendados

  • 0
Guest Visitante

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

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Visitante

não deu certo a tentativa

"SELECT * FROM table where variavel = ' ".$variavel." ' "

apresentando o seguinte erro

Parse error: parse error, unexpected T_STRING

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Visitante

Cara não sei o que está acontecendooo

no meu banco esta cadastrado os seguintes Seriais h343, 123456, 1234556

com 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!!!!!

Link para o comentário
Compartilhar em outros sites

  • 0

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 por Renato Penna
Link para o comentário
Compartilhar em outros sites

  • 0
Guest Visitante

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

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Visitante

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.. =x

uso php4, apache e mysql 4.1

Abraco....

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Paulo Eduardo

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!!!

Link para o comentário
Compartilhar em outros sites

  • 0

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/trim

Ps.: Você deveria ter usado varchar no campo...

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Paulo Eduardo

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)

Link para o comentário
Compartilhar em outros sites

  • 0

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..

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Paulo Eduardo

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 executar

o camando.. como que eu faco pra isso não acontecer?

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...