Ir para conteúdo

Arquivado

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

Queiroz

Problema no Update !!!!

Recommended Posts

Fala Galera,Sou novo aqui no fórum e estou com um problema. Estou criando uma página de internet em php com acesso ao banco de dados Mysql. Agora vem o problema.Preciso fazer várias atualizações em um dos campos da tabela. Mas a única atualização que dá certo é a primeira.include ("conectar.php");$logar = mysql_query("SELECT * FROM login WHERE nome='$nome' AND senha='$senha'") or die("erro ao selecionar");if (mysql_num_rows($logar)>0 ){ $verifica=mysql_fetch_array($logar,MYSQL_NUM); $a=$verifica[2]; $verifica[2]+=1; mysql_query("UPDATE login SET quantidade='$verifica[2]' WHERE nome= '$nome' AND senha = '$senha' AND quantidade = '$a'");....}Esta atualização dá certo ... depois desta atualiazação chamo outra página e nesta outra tb deveria ocorrer atualização mas não não ocorre.include ("conectar.php");mysql_query("UPDATE login SET quantidade= '2' WHERE nome= '$nome' AND senha = '$senha'") or die("erro ao selecionar");Nesta atualização eu queria que o campo quantidade recebesse 2, mas isso não ocorre.Já tentei várias modificações, mas em nenhuma obtive sucesso.Obrigado desde já,Diogo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

A variável nome contém o conteúdo correto ....já fiz os testes e ela retornou o esperado. Agora vou mandar o programa completo paraa você dar uma olhada, mas acho q está tudo certo, mas mesmo assim não funciona.Preciso fazer várias atualizações em um dos campos da tabela. Mas a única atualização que dá certo é a primeira. Este é o arquivo consulta.phpinclude ("conectar.php");session_start();$nome= $_POST['nome'];$senha = $_POST['senha'];$logar = mysql_query("SELECT * FROM login WHERE nome='$nome' AND senha='$senha'") or die("erro ao selecionar");if (mysql_num_rows($logar)>0 ){ $usuario['nome']=$nome; $usuario['senha']=$senha; session_register("usuario"); $verifica=mysql_fetch_array($logar,MYSQL_NUM); $a=$verifica[2]; $verifica[2]+=1; mysql_query("UPDATE login SET quantidade='$verifica[2]' WHERE nome= '$nome' AND senha = '$senha' AND quantidade = '$a'"); mysql_close($conectar); header("location:questao1.php");}Esta atualização dá certo ... depois desta atualiazação chamo outra página e nesta outra tb deveria ocorrer atualização mas não ocorre. O arquivo qusetao1.php contém o seguinte código.include ("conectar.php");session_start();$teste=session_is_registered("usuario");$nome=$usuario['nome'];$senha=$usuario['senha'];mysql_query("UPDATE login SET quantidade= '2' WHERE nome= '$nome' AND senha = '$senha'") or die("erro ao selecionar");mysql_close($conectar);O arquivo conectar.php contém o seguinte código:<?php$host = "localhost";$user = "root";$senha = "11111";$dbname = 'login';//conecta ao banco de dados$conectar=mysql_connect($host,$user,$senha) or die('Não foi possível conectar-se com o banco de dados');//seleciona o banco de dadosmysql_select_db($dbname)or die('NNNNão foi possível conectar-se com o banco de dados');?>Pq a atualização da página (arquivo) questão1.php não ocorre? As variáveis $nome e $senha contém os meus dados tanto no arquivo consulta quanto no questao1.php.Obriagdo desde já pela ajuda,Diogo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

PHP [/tr][tr]$nome=$usuario['nome'];

$senha=$usuario['senha'];

[/tr]

q q é isso?!?! Array?!?! Ta sendo definido no começo da pg?!?! :huh:

Compartilhar este post


Link para o post
Compartilhar em outros sites

o erro está no envio de cabeçalhos

 

 

session_start()

 

e

 

header("location:questao1.php");

 

 

 

 

session_start() envia um cabeçalho para o navegador, não pode ter nanhuma saída antes do seu uso. Nenhum outro cabeçalho pode ser enviado depois do uso do session_start()

 

Pode até usar, mas vai provocar erros no script ou na execução, no processamento de dados.

 

 

 

esse trecho:

 

$verifica=mysql_fetch_array($logar,MYSQL_NUM);

$a=$verifica[2];

$verifica[2]+=1;

mysql_query("UPDATE login SET quantidade='$verifica[2]' WHERE nome= '$nome' AND senha = '$senha' AND quantidade = '$a'");

você poderia simplificar desssa forma:

 

 

mysql_query("UPDATE login SET quantidade=(quantidade+1) WHERE codigo = '$codigo'");

para somar um valor você pode usar comando so próprio mysql (azul)

 

no lugar de código (negrito) você coloca o nome do campo primário referente as dados encontrados na tabela quando foi feita a consulta de validação do nome e senha

Compartilhar este post


Link para o post
Compartilhar em outros sites

Michelsp -- a variável usuário é um array que é armazenado na sessão ... com isso (acho) esta variável fica arnazenada na sessão ... assim .. até que a destrua esta variável fica contida nesta sessão ... para ter acesso a ela basta iniciar a sessão (session_start).hinom -- qual é a sugestão pra eu ter acesso a outra página que desejo (questao1.php) sem enviar um cabeçalho. Session_start pelo menos acho que eu não posso retirar devido ao q desejo fazer, mas como devo fazer para chamar a página questao1.php sem enviar um cabeçalho (que é (acho) a sua sugestão) ?Obrigado pela ajuda de vcs,Diogo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

naquele trecho:

mysql_close($conectar);header("location:questao1.php");}

troque por isso:

mysql_close($conectar);?><script language=javascript>location.href="questao1.php";</script><?}

para testar se a variável de sessão está registrada,coloque isso na primeira linha do arquivo questao1.php

session_start(); echo "usuário: ": $usuario['nome']; die;

se aparecer o valor então está tudo okcomente a linha e prossiga debugando o código

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.