HTRibeiro 0 Denunciar post Postado Agosto 12, 2008 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
Marcos Vilela Alves 4 Denunciar post Postado Agosto 12, 2008 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
Fr4nc0w 1 Denunciar post Postado Agosto 12, 2008 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
HTRibeiro 0 Denunciar post Postado Agosto 13, 2008 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
HTRibeiro 0 Denunciar post Postado Agosto 13, 2008 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
Marcos Vilela Alves 4 Denunciar post Postado Agosto 13, 2008 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
HTRibeiro 0 Denunciar post Postado Agosto 13, 2008 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
Marcos Vilela Alves 4 Denunciar post Postado Agosto 14, 2008 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
HTRibeiro 0 Denunciar post Postado Agosto 14, 2008 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
Marcos Vilela Alves 4 Denunciar post Postado Agosto 18, 2008 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
Alaerte Gabriel 662 Denunciar post Postado Agosto 18, 2008 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
HTRibeiro 0 Denunciar post Postado Agosto 20, 2008 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
HTRibeiro 0 Denunciar post Postado Agosto 20, 2008 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
Alaerte Gabriel 662 Denunciar post Postado Agosto 20, 2008 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
HTRibeiro 0 Denunciar post Postado Agosto 26, 2008 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
HTRibeiro 0 Denunciar post Postado Agosto 26, 2008 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
HTRibeiro 0 Denunciar post Postado Agosto 26, 2008 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
HTRibeiro 0 Denunciar post Postado Agosto 26, 2008 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
Marcos Vilela Alves 4 Denunciar post Postado Agosto 26, 2008 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=$ide 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
HTRibeiro 0 Denunciar post Postado Agosto 26, 2008 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=$ide 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