Ir para conteúdo

POWERED BY:

Arquivado

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

sasleal

Problema com update

Recommended Posts

Estou utilizando o mysql 5 e o php5.Quando faço o update ele não atualiza os dados.Testei a sintaxe direto no SQL Manager for MySQL porém ele só atualiza após fechar o programa.Segue abaixo a sintaxe $sql = mysql_query("UPDATE $tb4 SET nome_categoria='$nome_categoria' WHERE nome_categoria='$formcategoria' LIMIT 1;"); Desde já agradeço e aguardo respostas

Compartilhar este post


Link para o post
Compartilhar em outros sites

$sql = mysql_query("UPDATE $tb4 SET nome_categoria='$nome_categoria' WHERE nome_categoria='$formcategoria'");

Tenta sem o LIMIT 1.

Compartilhar este post


Link para o post
Compartilhar em outros sites

além do que o the cod disse,você está fazendo o update antes ou depois de efetuar o select.depois de fazer o update, faça um novo select.outra coisa, sua tabela realmente tem o nome de $tb4 com o $?Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

The Cod

 

O nome da tabela estar certo $tb4="categoria";

 

E dinaerteneto

 

Tem um select depois do update

Segue abaixo o codigo na integra.

 

//Alteração da Categoria no bdif ($acao==editar){global $nome_categoria;$sql = mysql_query("SELECT * FROM $tb4 WHERE nome_categoria='$nome_categoria'");if (!$sql){echo "Não foi possivel a conexao";}else{echo "<table>";while ($reg = mysql_fetch_array($sql)){$userdbcategoria = $reg['nome_categoria'];echo "<font face=verdana size=1><form name=F1 action=categoria_cad.php?acao=salvarreg method=POST><tr><td><font face=verdana size=1><strong>Categoria:</strong></td><td><input type=text name=\"categoria\" class=form value=\"$userdbcategoria\"></td><td><input type=submit value=\"Atualizar >>\" class=botao></td>		 </tr>		 </table></form>";}}}$acao = $_GET['acao'];$formcategoria = $_POST['categoria'];if ($acao==salvarreg){$sql = mysql_query("UPDATE $tb4 SET nome_categoria='$nome_categoria' WHERE nome_categoria='$formcategoria'");if (!$sql){echo "<script>alert(\"Erro, Não foi possivel atualizar seus dados\")</script>";}else{echo "<script>alert(\"Dados Atualizados com  Sucesso!\")</script>";echo "<meta http-equiv='refresh' content='0;URL=categoria.php?op=editar'>";}}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Testa ai novmente, se não der certo post de novo que farei outro modo.

<?php//Alteração da Categoria no bdif ($acao==editar){global $nome_categoria;$sql = mysql_query("SELECT * FROM $tb4 WHERE nome_categoria='$nome_categoria'");}if (!$sql){echo "Não foi possivel a conexao";}else{echo "<table>";while ($reg = mysql_fetch_assoc($sql)){$userdbcategoria = $reg['nome_categoria'];echo "<font face=verdana size=1><form name='F1' action='categoria_cad.php?acao=salvarreg' method='POST'><tr><td><font face=verdana size=1><strong>Categoria:</strong></td><td><input type='text' name='categoria' class=form value='$userdbcategoria'></td><td><input type='submit' value='Atualizar >>' class='botao'></td>		 </tr>		 </table></form>";}}$acao = $_GET['acao'];$formcategoria = $_POST['categoria'];if ($acao==salvarreg){$sql = mysql_query("UPDATE $tb4 SET nome_categoria='$nome_categoria' WHERE nome_categoria='$formcategoria'");}if (!$sql){echo "<script>alert(\"Erro, Não foi possivel atualizar seus dados\")</script>";}else{echo "<script>alert(\"Dados Atualizados com  Sucesso!\")</script>";echo "<meta http-equiv='refresh' content='0;URL=categoria.php?op=editar'>";}?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa,

 

Vamos resolver isso carinhas!! ehehe

 

O problema:

PHP
$sql = mysql_query("UPDATE $tb4 SET nome_categoria='$nome_categoria' WHERE nome_categoria='$formcategoria' LIMIT 1;");

 

Vamos separar um pouco as coisas para nos faciliatar visualizar na tela como está o seu UPDATE e acrescentar outras coisinhas que nos dará certamente qual é o problema do seu comando SQL. Coloque seu código dessa forma:

 

PHP
echo $sql = "UPDATE $tb4 SET nome_categoria='$nome_categoria' WHERE nome_categoria='$formcategoria' LIMIT 1" . "<br><br>";

$con = mysql_query($sql) or die (mysql_error());

 

O seu comando SQL não vai funcionar dessa forma por causa do "<br><br>", é de propósito para separarmos a query do erro retornado pelo mysql, mas assim, quero que você copie o erro e a query da tela e poste aqui no fórum, por favor...daí então, analisando "o erro e a query", poderemos rapidamente te ajudar. Faz isso pra'gente?

 

Abração meu camarada!! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Wagner,O erro que ocorreu foi o seguinte:UPDATE categoria SET nome_categoria='' WHERE nome_categoria='categoria05' LIMIT 1You 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

Compartilhar este post


Link para o post
Compartilhar em outros sites

Huuummmm, muito bem camarada!!

 

O erro está na query mesmo!! Percebeu? Você está usando o próprio nome da categoria para substituí-la e esta não está chegando na cláusula UPDATE por algum motivo. Com certeza o campo deve ter restrições NOT NULL, então o UPDATE falha.

 

A sua tabela categoria, como é essa tabela? Quais campos ela tem?

 

Dependendo, se você tiver um campo identificador, por exemplo um campo auto_increment, você pode usar este para atualizar o registro. Vai no mysql, dentro do banco que alimenta sua aplicação e emita o seguinte comando:

 

DESC categoria;

 

Cola o resultado aqui...vai lá!!

 

Abração!! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Segue os dados da tabela categoriaField Type Null Key Default Extracod_categoria int(4) NO PRI auto_incrementnome_categoria varchar(20) NO "" "" ""

Compartilhar este post


Link para o post
Compartilhar em outros sites

Além disso que o Wagner disse.

Parece que há um erro na construção da string.

 

UPDATE categoria SET nome_categoria=[color="#FF0000"]"[/color] WHERE nome_categoria='categoria05' LIMIT 1

Se isso estiver mesmo errado essa aspas deve vir da variável $tb4.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seguinte. . .o seu problema não é mais com o UPDATE, mas sim com lógica e com linguagem PHP.

Vamos mover este tópico para a área da lingagem e lá a galera poderá lhe ajudar melhor, ok?

 

O UPDATE tá certinho, somente indoco que você use o chave do registro...

 

UPDATE tabela SET campo ='valor' WHERE campo_chave =id;

 

Abração camarada!! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

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.