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

Error: Unknown Column '' In 'where Clause'


dev

Pergunta

Oi, gente.

O código que estou usando é esse:

$query ="SELECT * FROM dados WHERE login=$log";

$resultado = mysql_query($query,$conexao) or die('error: ' . mysql_error());

$retorno = mysql_num_rows($resultado);

A variavel $log é o login do usuário, é puxado da session quando o cara loga.

$log =  $_POST[txtlogin];

session_register("log");

$senha    =  $_POST[txtsenha];

Tá reconhecendo o login, mas diz que a coluna não existe. O que pode ser?

Fica tipo assim:

Error: Unknown column 'marcio' in 'where clause'

Tentei colocar a variave assim: login= '$log', mas aí deu aquele erro de que tem "" a mais na key 2 (algo assim), tirei as aspas simples e agora está dando esse erro da coluna. Naõ estou conseguindo resolver.

Se alguém puder me ajudar, agradeço demais. biggrin.gif

Inté...

Link para o comentário
Compartilhar em outros sites

Posts Recomendados

  • 0

É, bom...o certo realmente seria:

$query ="SELECT * FROM dados WHERE login='$log'";

Deve funcionar, só dá problema quando você usa aspas duplas dentro de asplas duplas ou aspas simples dentro de aspas simples... se usar um tipo de aspas diferentes, funciona...

Testa isso e diz se deu certo...

Link para o comentário
Compartilhar em outros sites

  • 0

Oi, 404 error.

Copiei e colei o código que você passou, mas aí deu esse erro:

error: Duplicate entry '' for key 2

Só funciona sem as aspas, também achei estranho !!!!

"funciona" não... parece que fica mais próximo... sad.gif

Tem idéia do que mais posso fazer? estou quebrando a cabeça aqui...

O usuário existe, já verifiquei, de qualquer forma não logaria se não existisse.

E os campos também estão certos.

?????

Agradeço a todos que puderem me ajudar. Preciso resolver logo e essa coisa não funciona... mad.gif

dev.

Link para o comentário
Compartilhar em outros sites

  • 0

Esquisito... não era pra acontecer isso! Eu teste aqui no meu e funcionou dessa forma.

Já experimentou reiniciar o computador? Uma vez eu fiz isso na mesma situação e funcionou! Era um script que eu tinha certeza que tava certo!

Link para o comentário
Compartilhar em outros sites

  • 0

Nossa, cara!

O erro continua igual: se coloco com aspas dá aquele erro de "duplicate" e se tiro as aspas dá o erro da coluna...

Difícil, hein?

Dei outra geral no código, mas não consigo entender onde possa estar o erro.

Também tentei reiniciar o computador, mas não adiantou (talvez, porque o eu estou usando um servidor, não instalei o bd no computador), mas agradeço a dica, Illidan, tudo é válido, porque tá esquisito mesmo.

dev

Link para o comentário
Compartilhar em outros sites

  • 0

Gente, to achando que eu devo ter feito alguma burrice...

Olha só, tenho uma tabela dados com varios campos, alguns são preenchidos no cadastro do usuario e os outros devem ser preenchidos depois que o usuario está logado (usando esse que tá dando erro).

Na tabela, login é um dos campos, o que quero é que o insert mande as informações que foram preenchidas pelo 'joão' para os campo em branco na tabela onde o login = 'joão'.

Será que fiz direito? Deu pra entender?

Obrigado.

dev.

Link para o comentário
Compartilhar em outros sites

  • 0

Mas aí você tem que usar outro comando, não o insert! Acho que é por isso que tá dando esse erro de "duplicate"! você deve ter colocado que esse campo (login) não aceita duas entradas iguais, certo? você tá dando um novo insert, mas no seu caso deveria ser:

$query = "UPDATE dados SET nome='$nome' ... WHERE login='$login'"

É importantíssimo que você nunca se esqueça da cláusula WHERE nos comandos UPDATE e DELETE. Caso contrário, você perderá a tabela inteira! E não tem a opção "undo", hehehe! Por isso que é de extrema importância, tb, um backup constante do banco de dados...

Falou! Um abraço!

Link para o comentário
Compartilhar em outros sites

  • 0

Illidan, é que os campos que to colocando no insert ainda estão em branco...

to postando o código, se alguém puder dar uma olhada pra tentar "achar" o erro, agradeço demais.

<?php

$conexao = mysql_connect ("localhost", "user", "3b") or die ('error: ' . mysql_error());

mysql_select_db ("novo");

//VERIFICA SE A SESSÃO ESTÁ ATIVA

require_once("verifica.php");

if (isset($_POST["Animais4"]) && isset($_POST["Leitura"]) && isset($_POST["Genero"]) && isset($_POST["Visual"]) &&  isset($_POST["Comida"]) && isset($_POST["Viagem1"])  && isset($_POST["Viagem2"])  && isset($_POST["Viagem3"])  && isset($_POST["Viagem4"])  && isset($_POST["Apresentacao"]) && isset($_POST["Frase"]) && isset($_POST["pbRegistrar"])) {

$animais4 = trim(ucfirst($_POST["Animais4"]));

$leitura = trim(ucfirst($_POST["Leitura"]));

$genero = trim(ucfirst($_POST["Genero"]));

$visual = trim(ucfirst($_POST["Visual"]));

$comida = trim(ucfirst($_POST["Comida"]));

$viagem1 = trim(ucfirst($_POST["Viagem1"]));

$viagem2 = trim(ucfirst($_POST["Viagem2"]));

$viagem3 = trim(ucfirst($_POST["Viagem3"]));

$viagem4 = trim(ucfirst($_POST["Viagem4"]));

$apresentacao = trim(ucfirst($_POST["Apresentacao"]));

$frase = trim(ucfirst($_POST["Frase"]));

$query ="SELECT * FROM dados WHERE login = $log";

$resultado = mysql_query($query,$conexao) or die('error: ' . mysql_error());

$retorno = mysql_num_rows($resultado);

if ($retorno > 0) {

  $query = "INSERT INTO dados (animais4, leitura, genero, visual, comida, viagem1, viagem2, viagem3, viagem4, apresentacao, frase)

  VALUES ('$animais4', '$leitura', '$genero', '$visual', '$comida',

  '$viagem1', '$viagem2', '$viagem3', '$viagem4', '$apresentacao', '$frase')";

   $resultado = mysql_query($query,$conexao) or die('error: ' . mysql_error());

  if (mysql_affected_rows() > 0) {

  $query = "SELECT * FROM dados WHERE login = $log";

  $resultado = mysql_query($query,$conexao) or die('error: ' . mysql_error());

  $num = mysql_num_rows($resultado);

   echo "<p align='center'><font face='Verdana, Arial, Helvetica, sans-serif' size='2' color='#000080'>

         <b>Seu perfil foi cadastrado com sucesso!</b></font></p>

         <p align='center'><font face='Verdana, Arial, Helvetica, sans-serif' size='2' color='#000080'>

         <b><a href='home.php'>Voltar para a Home</a></b></font></p>";

} else {

   echo "<p align='center'><font face='Verdana, Arial, Helvetica, sans-serif' size='2' color='#FF0000'>

         <b>Erro - Não foi possível concluir o cadastro de seu perfil.</b></font></p>

         <font face='Verdana, Arial, Helvetica, sans-serif' size='2' color='#000080'>

         <a href='javascript:history.go(-1)'>Tente novamente.</a></b></font></p>";

}

}

} else {

##############

?>

<script language='JavaScript' type='text/javascript'>

function registro_perfil(form) {

if (form.Apresentacao.value == '') {

  alert('Por favor, selecione o campo Apresentação!');

  form.Apresentacao.focus();

  return false;

   }

return true;

}

</script>

<?php

#########

echo $script;

     $msg = "

<html><head><body>

<form name='frmRegistroPerfil' method='post' action='$pagina'>

......

</form></body></html>";

echo $msg;

}

?>

Link para o comentário
Compartilhar em outros sites

  • 0

Amigo, esse é o script pra atualizar um usuário, e não o script pra incluir um novo, certo? O bom era: ou você ter um pra cada coisa, ou você cria uma função if da seguinte forma:

busca no banco de dados se o login já existe. Se não, você usa a $query dessa forma que está aí. Se já existir, usa aquela $query que te passei (UPDATE ...)

beleza? Falou cara!

A, e não se esqueça das aspas! WEHRE login='$log'

Link para o comentário
Compartilhar em outros sites

  • 0

Não tem de que... qualquer coisa, posta aí... wink.gif

Eu entendi melhor o seu código agora. Esse "if" antes do insert já é pra saber se o cara já é cadastrado, né? Então, beleza. Se for, acredito que seja só alterar o INSERT por UPDATE... aí, se você tiver dúvidas na sintaxe desse comando, nóis te ajuda!

Falou!

Link para o comentário
Compartilhar em outros sites

  • 0

Copiei e colei o código que você passou, mas aí deu esse erro:

Seu problema maior é esse tente não copiar e colar ,mas tente entender o script

dai você consegue fazer qualquer coisa e consegue achar seus erros mais facil

Link para o comentário
Compartilhar em outros sites

  • 0

Oi, fabyo.

Estou nesse código desde quarta à tarde, já revirei ele todo, simplesmente copiei e colei para ter certeza de que estava colocando as aspas como o 404error sugeriu. to montando o código, portanto, não é esse é o meu problema. Foi mal. dry.gif

Illidan, inacreditável, cara. mudei pro update e continua dando o "mesmo erro", se puder conferir o que fiz, eu agradeço. É a primeira vez que uso o update, até agora estava no select, insert. rolleyes.gif

Fiz somente alguns campos para ficar mais rápido.

if (isset($_POST["Animais4"]) && isset($_POST["Leitura"]) && isset($_POST["Genero"]) &&

isset($_POST["Visual"]) &&  isset($_POST["Comida"]) && isset($_POST["Viagem1"])  &&

isset($_POST["pbRegistrar"])) {

$animais4 = trim(ucfirst($_POST["Animais4"]));

$leitura = trim(ucfirst($_POST["Leitura"]));

$genero = trim(ucfirst($_POST["Genero"]));

$visual = trim(ucfirst($_POST["Visual"]));

$comida = trim(ucfirst($_POST["Comida"]));

$viagem1 = trim(ucfirst($_POST["Viagem1"]));

$query ="SELECT * FROM dados WHERE login = $log";

$resultado = mysql_query($query,$conexao) or die('error: ' . mysql_error());

$retorno = mysql_num_rows($resultado);

if ($retorno > 0) {

  $query = "UPDATE dados SET animais4='$animais4', leitura='$leitura', genero='$genero',

  visual='$visual', comida='$comida', viagem1= '$viagem1' WHERE login=$log";

   $resultado = mysql_query($query,$conexao) or die('error: ' . mysql_error());

Agradeço demais a você e ao 404error por estarem me ajudando.

abraços. biggrin.gif

Link para o comentário
Compartilhar em outros sites

  • 0

Deve estar dando erro porque falta aspas em

WHERE login = '$log'

Tenta lá wink.gif

PS: sem fazer demagogia, é um prazer ajudar aos outros. Principalmente quando eles voltam no fórum felizes por terem conseguido com a nossa ajuda! rolleyes.gif

Um abraço!

Link para o comentário
Compartilhar em outros sites

  • 0

Aí, Fabyo

Peço desculpas.

É que to ralando pra conseguir acertar o código e, na hora, não gostei de ler o que você escreveu. podia ter colocado de outra maneira, ou ter perguntado...

Mas entendo que você queria só ajudar.

tá valendo.

um abraço. biggrin.gif

Link para o comentário
Compartilhar em outros sites

  • 0

Grande 404error !! foi isso mesmo, agradeço a você também !!!!!! biggrin.gifbiggrin.gif

É que além das benditas aspas, tinha que mudar o insert para update....

Gente, muito obrigado. estou apanhando um tanto, mas a ajuda de vocês me animou demais, já estava desistindo de terminar o projeto.

Valeu mesmo, meus amigos !!!

Um abração pro cês dois.

dev.

Link para o comentário
Compartilhar em outros sites

  • 0

Pessoal, mais uma dúvida:

nesse cadastro, a pessoa vai selecionar os campos e eles serão "atualizados", preenchendo os campos que estão em branco. Beleza !

Mas, como devo fazer para que, depois da pessoa preencher esses campos, ela possa alterar só alguns? tipo assim... se ela mudar só um campo, usando esse formulário, e enviar, os campos não preenchidos, serão alterados para branco, não é?

Como resolvo isso? é muito complicado?

Se puderem me ajudar em mais essa....

Já agradeço ! rolleyes.gif

Um abraço.

dev

Link para o comentário
Compartilhar em outros sites

  • 0

Não é difícil, não! você pode fazer 2 coisas:

Pegar o atual valor do campo no banco de dados (independente se estiver em branco ou não) para o "value" de cada objeto do formulário, sabe? Aí, onde tiver dados, já vai estar preenchido... e ninguém vai apagar um valor que já tem e apertar submit. Bom, espera-se que não smile.gif

Ou você pode criar uns "ifs" pra ver se a variável está definida (se ela estiver, é porque o cara alterou) e aí só fazer o update onde as variáveis não forem nulas.

Entendeu?

Cara, mais tarde eu volto aí... se você tiver dúvida ainda, eu te ajudo.

Um abraço!

Link para o comentário
Compartilhar em outros sites

  • 0

Illidan, o que eu vou precisar é o primeiro exemplo que você deu, mas, desulpe a ignorância, eu não sei como devo fazer para puxar os dados nos campos do formulário. será que dou conta?

se puder me dar uma dica de como funciona...

obrigado.

boa noite !!!

Link para o comentário
Compartilhar em outros sites

  • 0

Claro... olha só:

Primeiro você dá um comando:

$query ="SELECT * FROM dados WHERE login = '$log'";

$resultado = mysql_query($query,$conexao) or die('error: ' . mysql_error());

Seria como se você fosse imprimir os dados do cara que tem o login igual a variável $log, certo? E no fundo você vai imprimir os dados dele na página, só que de outra forma (que é nos campos do formulário).

Aí, você cria o formulário, e dentro dele você coloca o comando mysql_fetch_array(), pra imprimir os dados. Vou da um exemplo:

<form>

<?php

while ($linha = mysql_fetch_array($resultado)) {

    echo "<b>Nome:</b> <input type=\"text\" size=\"100\" maxlegth=\"200\"

            value=\"" . $linha['nome'] . "\" <br>";

}

?>

</form>

Tenta lá com esse exemplo pra você ver... quando abrir a página, dê uma olhada como ficou o código fonte HTML, assim você vai entendendo melhor como o script funciona.

Onde está $linha['nome'], 'nome' é o nome do campo no banco de dados... você tem vários campos (deve ter lá: nome, login, senha, idade, etc.). Aí você vai colocando com o "echo" os campos que você quiser que saia na página. Entendeu?

Falou, amigo! Até mais!

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,1k
    • Posts
      651,7k
×
×
  • Criar Novo...