Jump to content


Photo

Problema Com Exclusão De Registro Mysql


  • Faça o login para participar
2 replies to this topic

#1 AndreBrunelli

AndreBrunelli

    Novato no fórum

  • Usuários
  • 6 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte

Posted 08/01/2009, 23:38

Oi gente, tudo tranquilo?

Estou com um probleminha meio chato que to perdendo tempo num sisteminha simples que estou fazendo...

Eu tenho uma lista numa tabela de todos os registros que tenho cadastrados e o o problema é quando quero excluir um desses.
Quando tenho apenas 1 ou 2 registros consigo apagar sem nenhum problema, o parametro e passado certinho e o registro eh apagado, agora quando tenho 3 ou mais registros, ele simplesmente nao retorna nada.... olhem como eu fiz:

dentro do codigo da pagina tenho o codigo php responsavel por trazer os registros...:

<?php while ($row = mysql_fetch_array($resultadoQueryAdmin) ){ ?>
					<tr class="texto">
					  <td height="26" align="center" valign="middle" bgcolor="#F4F4F4" class="texto"><p>
						  <?php if($_SESSION['nome_logado'] != $row['nome']){ ?>
							  <input type="hidden" name="idlogin" value="<?php echo $row['login']; ?>" />
							  <input class="botao" onClick="[b]confirmaExclusao(idlogin.value)[/b];" type="button" name="Button" value="Excluir"/>
						   <?php } ?>
						  </p></td>
					  <td valign="top"><p><?php echo $row['nome']; ?></p></td>
					  <td valign="top"><p><?php echo $row['login']; ?></p></td>
					</tr>
<?php } //fim do while ?>

depois no mesmo arquivo .php tenho a funcao js que eh passado como parametro para ser excluido o registro

		 function confirmaExclusao(excluido){
	   if (confirm("Deseja excluir este item?")){
		  location = "acoes/excluiAdministrador.php?escolha=" + excluido;
	   }
	}

que em seguida chama o excluiAdministrador.php que tem as seguintes linhas

$conexao = new database();
//foi trocado o $HTTP_GET_VARS por $_GET para funcionar no easy php
$escolha = $_GET['escolha'];

$queryExcluir = "DELETE FROM administrador WHERE login = '$escolha' LIMIT 1";
$resultadoQueryExcluir = $conexao->consulta($queryExcluir);

$conexao->finalizaConexao();

header("Location: ../cadastrarAdministradores.php?area=cadastrarAdministrador&cad=4"); // Exclusão realizada com sucesso.

o que pode estar acontecendo?

detalhe: coloquei um alert dentro da funcao js desse modo "alert(excluido);" e foi assim que descobri que quando tenho mais que tres registros o "excluido" vai como undefined e quando ele tem ate 2 registros eh passado o login que quero exluir normalmente....

nao sei mais o que fazer... obrigado pela forca

#2 hooligans

hooligans

    Normal

  • Usuários
  • 83 posts
  • Sexo:Não informado

Posted 09/01/2009, 10:08

amigo sua tabela não tem o campo id que é autoincrement ai é numero único chave primária né ai tu coloca no hidden o id e manda deletar ele seria algo tipo assim



$queryExcluir = "DELETE FROM administrador WHERE id= '$escolha'";

não precisa limitar pq id é único né :D

espero ter ajudado

#3 AndreBrunelli

AndreBrunelli

    Novato no fórum

  • Usuários
  • 6 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte

Posted 09/01/2009, 13:15

amigo sua tabela não tem o campo id que é autoincrement ai é numero único chave primária né ai tu coloca no hidden o id e manda deletar ele seria algo tipo assim



$queryExcluir = "DELETE FROM administrador WHERE id= '$escolha'";

não precisa limitar pq id é único né :D

espero ter ajudado


oi.. obrigado pela ajuda, mas olha soh...
eu mudei agora para o seguinte:

<?php while ($row = mysql_fetch_array($resultadoQueryAdmin) ){ ?>
					<tr class="texto">
					  <td height="26" align="center" valign="middle" bgcolor="#F4F4F4" class="texto"><p>
						  <?php if($_SESSION['nome_logado'] != $row['nome']){ ?>
							  <input type="hidden" name="idlogin" value="<?php echo $row['cdadm']; ?>" />
							  <input class="botao" onClick="confirmaExclusao('cdadm.value');" type="button" name="Button" value="Excluir" />					   <?php } ?>
						  </p>					   </td>
					  <td valign="top"><p><?php echo $row['nome']; ?></p></td>
					  <td valign="top"><p><?php echo $row['login']; ?></p></td>
					</tr>
					<?php } //fim do while ?>

soh que o problema é nesse parametro que esta sendo passado, onClick="confirmaExclusao('cdadm.value');" eu nao consigo passar o cdadm (minha PK)
coloquei um alert no meu javascript e o alert esta vindo UNDEFINED
function confirmaExclusao(excluido){
	   if (confirm("Deseja excluir este item?")){
	   	  alert(excluido);	
		  location = "acoes/excluiAdministrador.php?escolha=" + excluido;
	   }
	}

ou seja nao estou conseguindo passar para query qual PK excluir, lembrando que minha query que esta abaixo esta em outro arquivo php que é responsavel pela exclusao

para ele ir para a query:


$escolha = $_GET['escolha'];
$queryExcluir = "DELETE FROM administrador WHERE cdadm = '$escolha' LIMIT 1";
$resultadoQueryExcluir = $conexao->consulta($queryExcluir);






RESOLVIDO!


Gente, agradeço a quem me ajudou, mas consegui resolver o problema...

nao estava conseguindo pegar o valor da PK, entao ao inves de fazer do modo que estava fazendo como citei acima, passei o valor desse modo

<input type="hidden" name="cdproduto" value="<?php echo $row['cdproduto']; ?>" />
<input class="botao" onClick="confirmaExclusao(<?php echo $row['cdproduto']; ?>);" type="button" name="Button" value="Excluir" />

ao inves de passar cdproduto.value dentro do onClick="confirmaExclusao() .... desse modo consegui exlcluir... quebrei bastante a cabeça, mas valeu a pena, hehhe comecei a mexer com php tem 1 mes to apanhando ainda, obrigado gente..




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq