Ir para conteúdo

POWERED BY:

Arquivado

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

HTRibeiro

Como usar o isset numa atualização no MySql

Recommended Posts

Pessoal,

 

sou novato na dobradinha PHP/MySql e preciso de ajuda.

No código abaixo, após pressionado o botão submit, quero atualizar os dados que foram previamente mostrados mediante uma consulta. Vejam que o código a ser chamado é o mesmo, mas mediante um teste (da variável $submit) ele entraria, na 2a. vez, no UPDATE.

Disseram-me para utilizar o isset mas não estou sabendo como. O nome do arquivo é altera_vis.php e parte do código está aqui:

 

<TABLE width="100%" border="1" cellpadding="0" cellspacing="0">

<TR>

<TD align="center"><STRONG>Alterar Visita</STRONG></TD>

</TR>

<TR>

<TD align="center">

<?php

 

if (isset($submit) and $submit==1)

{

echo "Dados Atualizados";

$update= "UPDATE Tab_Visitas SET Data_Visita='$Data_Visita', Horario='$Horario' where Id='$Id'";

}

else

{

$submit = 1;

 

echo "<FORM action='altera_vis.php' method='POST'>

<TABLE border=1>

<TR>

<TD><STRONG>Data da Visita - Formato: aaaa-mm-dd</STRONG></TD>

<TD><input name='Data_Visita' type='text' value='<?=$Data_Visita;?>'></TD>

</TR>

<TR>

<TD><STRONG>Horário</STRONG></TD>

<TD><input name='Horario' type='text' value='<?=$Horario;?>'></TD>

</TR>

<TR>

<TD colspan='6' align='center'>

<INPUT type=reset value='Limpar'>

<INPUT type=submit value='Enviar'>

</TD>

</TR>

</TABLE>

</FORM>";

}?>

</TD>

</TR>

</TABLE>

Outra coisa, qdo o dado é exibido, ele vem assim:

<?=Faculdade de Administração Prof. Cecilia;?>

ou seja, com a sintaxe PHP.

Onde estou errando ? No isset, no UPDATE, em tudo...

 

Grato pela ajuda.

 

H.

Compartilhar este post


Link para o post
Compartilhar em outros sites

olá olhei seu codigo e naum vi nenhum erro naum...

as variaveiz globais estao on nas info do php???

se naum tenta fzr assim...

ao invez de colocar uma variavel submit, tenta criar um hidden com o nome de submit e faz um post antes do if...

talvez seja isso.....

Compartilhar este post


Link para o post
Compartilhar em outros sites

ali nos value dos campos você tem q por assim oh:

 

<? echo $variavel; ?>

 

beleza?

 

ai em relação ao update, eu sempre coloco o mesmo em outra página onde posso validar todos os campos ainda.

você pode fazer assim para saber se foi clicado em submit.

crie um input hidden e de qualquer valor a ele. dai faça a validação que fiz abaixo.

 

if(isset($_POST("HIDDEN"){

 ACAO

};

 

beleza?

 

flw

Compartilhar este post


Link para o post
Compartilhar em outros sites

olá olhei seu codigo e naum vi nenhum erro naum...

as variaveiz globais estao on nas info do php???

se naum tenta fzr assim...

ao invez de colocar uma variavel submit, tenta criar um hidden com o nome de submit e faz um post antes do if...

talvez seja isso.....

Cara, eu agradeço a sua dica, mas como eu faria isso ? Seria mto pedir se você demonstrasse através do código como fazê-lo ?

 

Grato.

Compartilhar este post


Link para o post
Compartilhar em outros sites

ali nos value dos campos você tem q por assim oh:

 

<? echo $variavel; ?>

 

beleza?

 

ai em relação ao update, eu sempre coloco o mesmo em outra página onde posso validar todos os campos ainda.

você pode fazer assim para saber se foi clicado em submit.

crie um input hidden e de qualquer valor a ele. dai faça a validação que fiz abaixo.

 

if(isset($_POST("HIDDEN"){

 ACAO

};

 

beleza?

 

flw

Cara, como eu disse ao outro colega, você não poderia ser mais explícito, tipo, mostrar mesmo como eu faria no código ?

Sabe como é, sou novato e como todo novato, preciso ver para crer...rsss

 

Grato,

 

H.

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom como eu disse você pode tentar criar um hidden e nele colocar o nome de submit e o valor da ação....

ex:

<input type="hidden" name="submit" value="a">

entaum você trata usando um post na outra pagina...

if ($_POST['submit'] == "a")
{
// ações referentes ao a...
}
i usando if você pode atribuir o valor que você quiser no hidden...

tipo

você coloca o valor em uma variavel php i no value do hidden coloca assim

value="<?=$variavel;?>" ...

nesse caso o hidden asusmiria o valor que a varievel tiver....

espero ter ajudado.. qualquer duvida eh soh postar.....

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom como eu disse você pode tentar criar um hidden e nele colocar o nome de submit e o valor da ação....

ex:

<input type="hidden" name="submit" value="a">

entaum você trata usando um post na outra pagina...

if ($_POST['submit'] == "a")
{
// ações referentes ao a...
}
i usando if você pode atribuir o valor que você quiser no hidden...

tipo

você coloca o valor em uma variavel php i no value do hidden coloca assim

value="<?=$variavel;?>" ...

nesse caso o hidden asusmiria o valor que a varievel tiver....

espero ter ajudado.. qualquer duvida eh soh postar.....

Marcos,

 

estou postando o código por inteiro e gostaria q você o avaliasse, pode ser ? Vou colocar comentários em algumas linhas para ficar mais claro para você.

 

<TABLE width="100%" border="1" cellpadding="0" cellspacing="0">

<TR>

<TD align="center"><STRONG>Alterar Visita</STRONG></TD>

</TR>

<TR>

<TD align="center">

<?php

 

$submit = $_POST["submit"];

 

if (isset($submit) and $submit==1)

{

$conexao = mysql_connect("localhost","operador","senha") or die($msg[0]);

$result=mysql_select_db("Visitas",$conexao);

 

$query= "UPDATE Tab_Visitas SET Data_Visita='$Data_Visita', Horario='$Horario', Visitante='$Visitante' where Id='$Id'";

 

$update=mysql_query($query,$conexao);

 

if(!$update)

{

exit('Erro na Atualizaç;ão dos Dados! Contate o Administrador');

}

else

{

echo "Dados Atualizados Com SUCESSO.";

}

}

else

{

$submit = 1;

 

// Estas variáveis VAR0, VAR1, VAR2... vieram de outro código .php, elas são a resposta a uma consulta que o usuário faz ao banco de dados

 

$Id = $_GET['VAR0'];

$Data_Visita = $_GET['VAR1'];

$Horario = $_GET['VAR2'];

 

?>

<FORM action='altera_vis.php' method='POST'>

<TABLE border=1>

<TR>

<TD><STRONG>Data da Visita - Formato: aaaa-mm-dd</STRONG></TD>

<TD><input name='Data_Visita' type='text' value='<?=$Data_Visita;?>'></TD>

</TR>

<TR>

<TD><STRONG>Horário</STRONG></TD>

<TD><input name='Horario' type='text' value='<?=$Horario;?>'></TD>

</TR>

<TR>

<TD colspan='6' align='center'>

<INPUT type=reset value='Limpar'>

<INPUT type=submit value='Enviar'>

<INPUT type=hidden name='submit' value='<?=$submit;?>'>

</TD>

</TR>

</TABLE>

</FORM>

<?php

}

?>

</TD>

</TR>

</TABLE>

 

O que este código faz, é: verifica se $submit é igual a 1. Como na 1a. vez ele está vazio, ele vai para o ELSE. No ELSE os dados são exibidos e o usuário pode alterá-los. Depois que o botão SUBMIT é clicado, a variável $submit recebe o valor 1 e o código altera_vis.php é chamado novamente, ou seja, ele verifica novamente se o $submit é igual a 1 (o que é verdade) e entra no IF. Mas é aí é que está o problema, as variáveis (Data_Visita, Horario) estão vazias e consequentemente o UPDATE não funciona. Como posso fazer para que as variáveis cheguem com seus valores no IF para a atualização ?

 

Cara, fico grato pela ajuda.

 

H.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom pelo que vi era pra funcionar sim..

tenta dar um post nos campos horarios e data...

talvez suas variaveis globais nao estejam ativadas....

da uma olhada no info pra ver...

i mais uma coisa... os valores de id data e horario você esta passando é via url????

bom.. tenta colocar o post...

e acredito tbm que nao seja nesseraio você colocar o isset no if...

basta você colocar $subimit == 1 pq se ele naum tiver valor nenhum tbm nao sera igual a um....

tenta fzr isso....

 

um grande abraço...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom pelo que vi era pra funcionar sim..

tenta dar um post nos campos horarios e data...

talvez suas variaveis globais nao estejam ativadas....

da uma olhada no info pra ver...

i mais uma coisa... os valores de id data e horario você esta passando é via url????

bom.. tenta colocar o post...

e acredito tbm que nao seja nesseraio você colocar o isset no if...

basta você colocar $subimit == 1 pq se ele naum tiver valor nenhum tbm nao sera igual a um....

tenta fzr isso....

 

um grande abraço...

Eu utilizei o POST e os dados estão lá, bom, pelo menos eu os visualizo com um echo $Data_Visita...

Mas o UPDATE não funciona, eu fiz assim:

$conexao=mysql_connect("localhost", "operador", "senha");

$result=mysql_select_db("Visitas",$conexao);

$query="UPDATE Tab_Visitas SET Data_Visita='$Data_Visita', Horario='$Horario' where Id='$Id'";

$update=mysql_query($query, $conexao);

 

Alguma idéia ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

os valores Data_Visita, Horario e Id sao strings no BD????

pq se algum for int... o id por exemplo, tira as aspas da variavel.. coloca assim

where id=$id...

agora para atualizar data eu nao me lembro se eh necessario o uso das aspas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

os valores Data_Visita, Horario e Id sao strings no BD????

pq se algum for int... o id por exemplo, tira as aspas da variavel.. coloca assim

where id=$id...

agora para atualizar data eu nao me lembro se eh necessario o uso das aspas.

Não precisa retirar aspas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

os valores Data_Visita, Horario e Id sao strings no BD????

pq se algum for int... o id por exemplo, tira as aspas da variavel.. coloca assim

where id=$id...

agora para atualizar data eu nao me lembro se eh necessario o uso das aspas.

O Id é integer, data_visita é date e o horario string.

Vou retirar e experimentar, embora num outro reply um outro colega tenha dito que não fosse preciso, mas não custa nada tentar.

 

Grato.

Compartilhar este post


Link para o post
Compartilhar em outros sites

os valores Data_Visita, Horario e Id sao strings no BD????

pq se algum for int... o id por exemplo, tira as aspas da variavel.. coloca assim

where id=$id...

agora para atualizar data eu nao me lembro se eh necessario o uso das aspas.

Não precisa retirar aspas.

 

Mas qual seria a sua sugestão, você vê algum erro no código ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Em sua query:

$update=mysql_query($query, $conexao);

deixe-a assim:

 

$update=mysql_query($query, $conexao)or die('ERRO:' .mysql_error());

veja se imprime algum erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

os valores Data_Visita, Horario e Id sao strings no BD????

pq se algum for int... o id por exemplo, tira as aspas da variavel.. coloca assim

where id=$id...

agora para atualizar data eu nao me lembro se eh necessario o uso das aspas.

Olá Marcos,

 

se eu retirar as aspas dá esse erro:

ERRO:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

se eu mantenho as aspas, não dá erro, mas ele simplesmente não atualiza !!!

O q pode ser ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

os valores Data_Visita, Horario e Id sao strings no BD????

pq se algum for int... o id por exemplo, tira as aspas da variavel.. coloca assim

where id=$id...

agora para atualizar data eu nao me lembro se eh necessario o uso das aspas.

Olá Marcos,

 

se eu retirar as aspas dá esse erro:

ERRO:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

se eu mantenho as aspas, não dá erro, mas ele simplesmente não atualiza !!!

O q pode ser ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Em sua query:

$update=mysql_query($query, $conexao);

deixe-a assim:

 

$update=mysql_query($query, $conexao)or die('ERRO:' .mysql_error());

veja se imprime algum erro.

Olá,

 

como eu disse ao Marcos, se eu retiro as aspas, o erro é este:

ERRO:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

mas se mantenho as aspas, não há erro, mas o dado não é atualizado ?!

O q pode ser ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

os valores Data_Visita, Horario e Id sao strings no BD????

pq se algum for int... o id por exemplo, tira as aspas da variavel.. coloca assim

where id=$id...

agora para atualizar data eu nao me lembro se eh necessario o uso das aspas.

Oi Marcos,

 

identifiquei o problema, ou pelo menos penso ser este o problema: o ID está vazio. No código abaixo, eu tratei o ID como se fosse uma variável a ser modificada, mas ela NÃO pode ser modificada. No código abaixo, no input hidden... como faço para passá-la sem modificá-la, pois ele está como se tivesse sido exibido para modificação pelo usuário (coisa q não aconteceu) ? Fui claro na minha pergunta ?

 

Código:

?><FORM action='altera_vis.php' method='POST'>

<TABLE border=1>

<TR>

<TD><STRONG>Data da Visita - Formato: aaaa-mm-dd</STRONG></TD>

<TD><input name='Data_Visita' type='text' value='<?=$Data_Visita;?>'></TD>

</TR>

<TR>

<TD><STRONG>Horário</STRONG></TD>

<TD><input name='Horario' type='text' value='<?=$Horario;?>'></TD>

</TR>

<TR>

<TD colspan='6' align='center'>

<INPUT type=reset value='Limpar'>

<INPUT type=submit value='Enviar'>

<INPUT type=hidden name='submit' value='<?=$submit;?>' name='Id' value='<?=$Id;?>' name='Data_Visita' value='<?=$Data_Visita;?>' name='Horario' value='<?=$Horario;?>' >

</TD>

</TR>

</TABLE>

</FORM>

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara eu criei uma tabela no meu banco com esses campos ai.. do msm jeito...

e colokei assim..

UPDATE Tab_Visitas SET Data_Visita='2008-07-01', Horario='10:00:00' where Id=1

ai atualizou certinho...

tenta colocar a string assim

$query="UPDATE Tab_Visitas SET Data_Visita='$data_visita', Horario='$horario' where Id=$id
e v se funciona...

ou tenta fzr uma atualização direto no bd pra ver se consegue....

abração..

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara eu criei uma tabela no meu banco com esses campos ai.. do msm jeito...

e colokei assim..

UPDATE Tab_Visitas SET Data_Visita='2008-07-01', Horario='10:00:00' where Id=1

ai atualizou certinho...

tenta colocar a string assim

$query="UPDATE Tab_Visitas SET Data_Visita='$data_visita', Horario='$horario' where Id=$id
e v se funciona...

ou tenta fzr uma atualização direto no bd pra ver se consegue....

abração..

Oi, dê uma olhada no post q fiz agora há pouco.

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.