Ir para conteúdo

POWERED BY:

Arquivado

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

grldesign

Problemas com UPDATE de tabela sql

Recommended Posts

Utilizo o código abaixo para atualizar dados de uma tabela. Ele retorna a mensagem de sucesso, mas na hora de verificar se ele alterou no banco a surpresa. Não alterou nada.

Segue abaixo o código.

 

require('config/config_con.php');  	  	    $sel = "UPDATE tabela SET titulo='$_POST[novo_titulo]', noticia='$_POST[nova_noticia]', fonte='$_POST[nova_fonte]', data='$_POST[nova_data]', hora='$_POST[nova_hora]' WHERE id='$id'";    $sql= mysql_query($sel) or die(mysql_error());        if(!$sql) {    	echo "<font color='#cc3300'>N&ato foi possível encontrar a notícia!</font>";         echo "<br><br><a href='javascript:window.history.go(-1)'>» Voltar</a>";    }    else {         echo "<font color='#cc3300'>Notícia alterada com sucesso!</font>";    }

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta assim:

require('config/config_con.php');$novo_titulo = $_POST[novo_titulo];$nova_noticia = $_POST[nova_noticia];$nova_fonte = $_POST[nova_fonte];$nova_data = $_POST[nova_data];$nova_hora = $_POST[nova_hora];   $sel = "UPDATE tabela SET titulo='$novo_titulo' and noticia='$nova_noticia' and fonte='$nova_fonte' and data='$nova_data' and hora='$nova_hora' WHERE id='$id'";   $sql= mysql_query($sel) or die(mysql_error());      if(!$sql) {    echo "<font color='#cc3300'>N&ato foi possível encontrar a notícia!</font>";        echo "<br><br><a href='javascript:window.history.go(-1)'>» Voltar</a>";   }   else {        echo "<font color='#cc3300'>Notícia alterada com sucesso!</font>";   }
No lugar da virgula coloca "and", vê se dá certo. ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não funcionou ainda prescot. Coloco abaixo o formulario que recebe os dados vindos de um while no banco de dados...

 

<form action="adpanel.php?area=noticias&acao=alterar&tipo=gravar&id=<? echo "id"; ?>" method="post">          <table width="400" border="0" cellspacing="0" cellpadding="0">            <tr valign="top">               <td><div align="right">Título</div></td>              <td> </td>              <td><input name="novo_titulo" type="text" size="40" class="inputs" value="<? echo "$titulo"; ?>"></td>            </tr>            <tr valign="top">               <td><div align="right">Texto</div></td>              <td> </td>              <td><textarea name="nova_noticia" rows="4" cols="37"><? echo "$noticia"; ?>"</textarea></td>            </tr>            <tr valign="top">               <td><div align="right">Fonte</div></td>              <td> </td>              <td><input name="nova_fonte" type="text" size="25" class="inputs" value="<? echo "$fonte"; ?>"></td>            </tr>            <tr valign="top">               <td><div align="right">Data</div></td>              <td> </td>              <td><input name="nova_data" type="text" size="15" class="inputs" value="<? echo "$data_sql"; ?>" disabled></td>            </tr>            <tr valign="top">               <td><div align="right">Hora</div></td>              <td> </td>              <td><input name="nova_hora" type="text" size="15" class="inputs" value="<? echo "$hora_sql"; ?>" disabled></td>            </tr>            <tr valign="top">               <td width="100"> </td>              <td width="6"> </td>              <td height="25" valign="middle"><input name="imageField" type="image" src="gfx/ok.gif" border="0"></td>            </tr>          </table>        </form>

Não sei se por dar echo "$titulo" por exemplo no value de um input, fará com que ele leve este valor exato quando submetido, mesmo que eu altere ele. Será?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hum, não sei, mas acho que isso não funciona não:

<form action="adpanel.php?area=noticias&acao=alterar&tipo=gravar&id=<? echo "id"; ?>" method="post">
Acho que só pode colocar o nome da pag, tipo:

<form action="adpanel.php" method="post">
Tenta colocar esses outros dados dentro do form tbm:

<input name="area" value="noticias" type="hidden"><input type="hidden" name="acao" value="alterar"><input type="hidden" name="id" value="<?=$id;?>">
Tenta aí.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Essa action funciona sim... na verdade ele so recarrega a mesma pagina, se o $tipo == gravar ele executa o codigo de gravação.

 

<form action="adpanel.php?area=noticias&acao=alterar&tipo=gravar&id=<? echo "id"; ?>" method="post">          <table width="400" border="0" cellspacing="0" cellpadding="0">            <tr valign="top">               <td><div align="right">Título</div></td>              <td> </td>              <td><input name="novo_titulo" type="text" size="40" class="inputs" value="<? echo "$titulo"; ?>"></td>            </tr>            <tr valign="top">               <td><div align="right">Texto</div></td>              <td> </td>              <td><textarea name="nova_noticia" rows="4" cols="37"><? echo "$noticia"; ?>"</textarea></td>            </tr>            <tr valign="top">               <td><div align="right">Fonte</div></td>              <td> </td>              <td><input name="nova_fonte" type="text" size="25" class="inputs" value="<? echo "$fonte"; ?>"></td>            </tr>            <tr valign="top">               <td><div align="right">Data</div></td>              <td> </td>              <td><input name="nova_data" type="text" size="15" class="inputs" value="<? echo "$data_sql"; ?>" disabled></td>            </tr>            <tr valign="top">               <td><div align="right">Hora</div></td>              <td> </td>              <td><input name="nova_hora" type="text" size="15" class="inputs" value="<? echo "$hora_sql"; ?>" disabled></td>            </tr>            <tr valign="top">               <td width="100"> </td>              <td width="6"> </td>     <td height="25" valign="middle"><input type="submit" value=" OK "></td>            </tr>          </table>        </form>

 

elseif ($tipo == "gravar") {   require('config/config_con.php');$novo_titulo = $_POST[novo_titulo];$nova_noticia = $_POST[nova_noticia];$nova_fonte = $_POST[nova_fonte];$nova_data = $_POST[nova_data];$nova_hora = $_POST[nova_hora]; 	  	 $sel = "UPDATE grl_noticias SET titulo='$novo_titulo' and noticia='$nova_noticia' and fonte='$nova_fonte' and data='$nova_data' and hora='$nova_hora' WHERE id='$id'";$sql= mysql_query($sel) or die(mysql_error());    if(!$sql) {echo "<font color='#cc3300'>N&ato foi possível encontrar a notícia!</font>"; echo "<br><br><a href='javascript:window.history.go(-1)'>» Voltar</a>";}else { echo "<font color='#cc3300'>Notícia alterada com sucesso!</font>";}}

É isso ai.

Compartilhar este post


Link para o post
Compartilhar em outros sites

<form action="adpanel.php?area=noticias&acao=alterar&tipo=gravar&id=<? echo "id"; ?>" method="post">

 

1a linha tah errado;

 

echo id ele vai escrever id, vai ficar id=id, e no caso teria que ter valor numerico, veja se nao é echo $id

 

tem que ser uma variavel.

 

$sel = "UPDATE grl_noticias SET titulo='$novo_titulo' and noticia='$nova_noticia' and fonte='$nova_fonte' and data='$nova_data' and hora='$nova_hora' WHERE id='$id'";

 

fica:

$sel = "UPDATE grl_noticias SET titulo='$novo_titulo' , noticia='$nova_noticia' , fonte='$nova_fonte' , data='$nova_data' , hora='$nova_hora' WHERE id='$id'";

 

 

e n faz diferenca voce redefinir as variaveis, voce tava fazendo certo em usar $_POST

 

voce direciona variaveis so vai estar criando variaveis desnecessarias e aumentando o codigo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

não funciona de maneira alguma...alguem tem um codigo ai que esteja funcionando que eu modifico conforme minhas necessidades?flw.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pode ser que os campos de texto do formulário que estão como disabled não estejam passando informação para o script ! Já tentou com eles sem o atributo disabled ?? :huh:

 

Bom de qualquer forma tenho aqui um codigo grandão mas funcionando:

Não esquecendo de chamar o id pelo form.

 

<?require('config/config_con.php');$id=$_REQUEST["id"];$novo_titulo = $_REQUEST["novo_titulo"];$nova_fonte = $_REQUEST["nova_fonte"];$nova_noticia = $_REQUEST["nova_noticia"];$nova_data = $_REQUEST["nova_data"];$nova_hora = $_REQUEST["nova_hora"];//querysmysql_query("update tabela set titulo = '$novo_titulo' where (id = '$id')");mysql_query("update tabela set fonte = '$nova_fonte' where (id = '$id')");mysql_query("update tabela set noticia = '$nova_noticia' where (id = '$id')");mysql_query("update tabela set data = '$nova_data' where (id = '$id')");mysql_query("update tabela set hora = '$nova_hora' where (id = '$id')");echo("Vê lá agora se funcionou !");?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Funcionou. Troquei pelo ser código Hostand (as querys somente), mas o erro era um $ errado que tava ocasionando todos os erros. De qualquer forma muito obrigado pela colaboração.

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.