Ir para conteúdo

Arquivado

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

PhantOmL0rd

Dados não querem ser alterados

Recommended Posts

E ae galera beleza, estou com um probleminha aki e preciso da ajuda de vcs se possível...

 

bom, este código de atualização de categoria não está funcionando, e eu não estou conseguindo saber pq??

O problema é que quando eu altero o nome da categoria e mando atualizar ele ta aparecendo a mensagem de ERROR: Categoria não pôde ser atualizada, só que quando eu tiro esse trecho do código " WHERE idCATEGORIA = '$idCATEGORIA' ", ele atualiza os dados, só que sem a condição vai atualizar todos os dados da tabela categoria, e não apenas o que eu quero atualizar. Alguem tem uma solução, espero ter sido claro com minha dúvida, aguardando sugestões.

 

Desde já agradecido.

 

<?php 
/* Inclui na página o código de segurança. 
   Evita que usuários não autorizados vizualizem a página. 
*/
include("include/seguranca.php");

/* Conectando com o banco de dados. */
require_once("../conexao/conexao.php");

$idCATEGORIA = $_GET['idCATEGORIA'];

/*..Código de edição de Categoria..*/
if(isset($_POST['nomeCAT'])){//if 0
	
	$nomeCAT = trim($_POST['nomeCAT']);
	
	/* Vai subistituir \r e \rn para <br>, Identifica quebra de linha. */
	$descricaoCAT = preg_replace("/(\\r)?\\n/i", "<br/>",trim($_POST['descricaoCAT']));
		
	$update_categoria = mysqli_query($con, "UPDATE categoria SET nomeCAT = '$nomeCAT', 
                                                descricaoCAT = '$descricaoCAT' 
                                                WHERE idCATEGORIA = '$idCATEGORIA'");
	
	if(mysqli_affected_rows($con)>0){//if 1	
		$msg_categoria = "Categoria atualizada com sucesso!";
		echo '<script>alert("'.$msg_categoria.'")</script>';
		echo "<META HTTP-EQUIV=REFRESH CONTENT=0;url=fotos.php>";
	}//fim if 1
	else{//else 1
		$msg_categoria = "ERROR: Categoria não pôde ser atualizada!";
		echo '<script>alert("'.$msg_categoria.'")</script>';
		echo "<META HTTP-EQUIV=REFRESH CONTENT=0;url=fotos.php>";
	}//fim else 1

}//fim if 0

$select_categoria = mysqli_query($con, "SELECT * FROM categoria 
                                        WHERE idCATEGORIA ='$idCATEGORIA'");

$row_categoria = mysqli_fetch_array($select_categoria);

//fecha a conexão com o banco de dados
mysqli_close($con);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>ADMIN - Editar Categoria</title>
<!--Chamando a CSS-->
<link href="css/estiloAdm.css" rel="stylesheet" type="text/css" />
</head>

<body>
<div id="container">
	
    <!-- Layout da Página -->
    <?php include("include/layout.php");?>
    
    <div id="conteudo">
    	<hr />
		<a href="home.php">admin</a> >> <a href="fotos.php">fotos</a> >> <a href="javascript:history.go(-1)">inserir fotos</a> >> editar categoria<br />
		<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post" enctype="multipart/form-data">
        <fieldset>
        	<legend>Editar Categoria - <?php echo $row_categoria['nomeCAT'];?> </legend>
			<label>Categoria:<br />
              <input name="nomeCAT" type="text" size="25" value="<?php echo $row_categoria['nomeCAT'];?>" />
            </label><br />
			<label>Descrição:<br />
              <textarea name="descricaoCAT" cols="45" rows="5" id="resumoNOT"><?php echo $row_categoria['descricaoCAT'];?></textarea>
            </label><br />
			<input id="enviarBtn" name="enviar" type="image" src="../imagens/enviarBtn.jpg" alt="Enviar" />
      	</fieldset>
		</form>
    </div>
    <!--Fim Div conteudo-->
</div>
<!--Fim Div container-->
</body>
</html>

quando eu coloco o mysqli_error(), a seguinte mensagem aparece:

Warning: mysqli_error() expects exactly 1 parameter, 0 given in C:\xampp\htdocs\informatica\admin\editar_categoria.php on line 25

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aparentemente não existe nada errado com a sua query, só uma coisa... retire os espaços de idCATEGORA = '$idCATEGORIA'... o que pode estar errado é a forma como idCATEGORIA está sendo passado...

 

Grande abraço, até...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Essa categoria 1 faz referência a mais de um dado cadastrado no banco?

 

Caso faça você terá que ter uma sub-categoria para diferenciar os itens cadastrados na mesma categoria e não alterar todos os itens referentes a CATEGORIA 1.

 

EX:

 

WHERE idCATEGORIA='$idCATEGORIA' AND SUBCATEGORIA='$subCATEGOIA'... passando o id da categoria como está passando mesmo e o da subcategoria também junto com a url...

 

..."/editar_categoria.php?idCATEGORIA=1⊂=subCATEGORIA.

 

Para pegar o valor use $subCATEGORIA = $_GET['sub'];

 

Dessa forma você fará a alteração na categoria desejada no item selecionado, e não em todos os itens daquela categoria...

 

Entendeu? Seria isso?

 

Grande abraço, até...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem, no caso a categoria tem fotos, mas para referenciar as fotos a uma categoria eu apenas utilizo o id da categoria, portanto acho q essa solução não fará efeito, já que eu quero alterar apenas o nome da categoria e a descrição.

 

segue abaixo a estrutura do bd:

CREATE TABLE `categoria` (
  `idCATEGORIA` int(10) unsigned NOT NULL auto_increment,
  `nomeCAT` varchar(85) NOT NULL,
  `descricaoCAT` varchar(255) default NULL,
  `imgCAT` varchar(255) NOT NULL,
  PRIMARY KEY  (`idCATEGORIA`)
) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=latin1;

CREATE TABLE `fotos` (
  `idFOTOS` int(10) unsigned NOT NULL auto_increment,
  `idCATEGORIA` int(10) unsigned NOT NULL,
  `tituloFOT` varchar(45) NOT NULL,
  `caminhoFOT` varchar(255) NOT NULL,
  `thumbFOT` varchar(255) default NULL,
  PRIMARY KEY  (`idFOTOS`),
  KEY `idCATEGORIA` (`idCATEGORIA`)
) ENGINE=MyISAM AUTO_INCREMENT=44 DEFAULT CHARSET=latin1;

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.