Ir para conteúdo

POWERED BY:

Arquivado

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

KahH

Alterar, excluir PHP

Recommended Posts

Olá, desculpem minha ignorância, mas sou nova no PHP, e estou tentando fazer um sistema que inclui, altera e exclui dados em uma só página. Porém, ele insere corretamente, mas ao clicar para alterar ou excluir é inserido um campo em branco no banco de dados, e o "id" do elemento não está sendo chamado, alguém por favor pode me dizer como faço para chamar o 'id' corretamente, pois acredito que ele faça essa inserção devido ao 'id'. Para esclarecer melhor segue abaixo o código.

Obrigada, aguardo resposta*

 

<html>
<head>
<title>Documento sem título</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>

<?php

session_start("user");
include("db.php");
include("menu.php");
	//RESGATANDO OS VALORES DO FORMULÁRIO
$nome=$_POST["nome"];
$usuario=$_POST["usuario"];
$senha=$_POST["senha"];
$com_senha=$_POST["com_senha"];




$acao=$_GET["acao"];

if($acao="enviar"){

//VERIFICANDO SE A SENHA ESTÁ OK
if(sizeof($erro)==0){
	if($senha != $com_senha){
		echo "A senha não confere com a confirmação da senha";
	}
}


$sql= mysql_query("insert into user (login, senha, nome) values ('".$nome."','".$usuario."', '".$senha."' )");

}
//EDITA O CONTEÚDO	
elseif($acao="editar"){
	$sql=mysql_query("update user set nome='$nome',login='$login',senha='$senha', where id_user='$id_user'");
	echo"edita";
}

//EXCLUI O CONTEÚDO
elseif($acao=="excluir") {
	$sql=mysql_query("delete * from user where id_user='$id_user'");
} 


//MOSTRA O FORMULÁRIO
$mostrar=$_GET["mostrar"];
if($mostrar=="S"){
?>



<form method="post" name="usuario" id="usuario" action="usuarios.php?acao=<?php echo $acao?>" >
Nome:<input type="text" name="nome" id="nome" value="<?php echo $nome ?>"><br />
Usuário<input type="text" name="usuario" id="usuario" value="<?php echo $usuario ?>"><br />
Senha:<input type="password" name="senha" id="senha" value=""><br />
Confirmação da senha:<input type="password" name="com_senha" id="com_senha" value=""><br />
<input type="submit" name="enviar" id="enviar">
</form>





<?php
}

?>

<a href="usuarios.php?mostrar=S">[incluir]</a>
<br />

<?php 
$query = mysql_query("SELECT * FROM user order by id_user desc");
$id_user = $_GET["id_user"];
$row = mysql_fetch_array($query);

while ($row = mysql_fetch_array($query)){
		$rnome = $row['nome'];
		$rusuario = $row['login'];

	echo'

	<table>
			<tr>
				<td> Nome</td>
				<td >Usuário</td>
				<td>Alterar</td>
				<td>Excluir</td>
			</tr>
			<tr>
				<td> '.$rnome.' </td>
				<td> '.$rusuario.' </td>
				<td><a href="usuarios.php?acao=editar&mostrar=S&id_usuario='.$id_user.'">Alterar</a></td>
				<td><a href="usuarios.php?acao=excluir&id='.$id_user.' ">Excluir</a></td>
			</tr>

		</table> ';

}
?>



</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá KahH!

 

Bom, pelo que ví, você esta criando duas variaveis do tipo get, que levam o mesmo ID do usuario, mas com nomes de variaveis diferentes.

 

Encontrei isto:

<td><a href="usuarios.php?acao=editar&mostrar=S&id_usuario='.$id_user.'">Alterar</a></td>
<td><a href="usuarios.php?acao=excluir&id='.$id_user.' ">Excluir</a></td>

Repare que em ALTERAR, você esta levando a varivel "ID_USUARIO" e, em EXCLUIR, esta levando outra chamada "ID".

 

Nos comandos SQL, você esta usando a variavel de referencia "$id_user", sendo que ela não existe.

 

Tente resgatar todas as variaveis(para o codigo ficar mais claro), e padronizar as variaveis de url.

No codigo acima, troque as variaveis por:

 

?acao=editar&mostrar=S&usuario_id='.$id_user.'

?acao=excluir&usuario_id='.$id_user.'

 

E junto com as variaveis de ação, acrescente:

$acao=$_GET['acao'];
$usuario_id = $_GET['id'];

na clausula sql, mude para:

where id_user='$usuario_id'"

Espero que tenha entendido.(sem ofensas, claro).

Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uélio, Obrigada pela ajuda, as variaveis estavam erradas mesmo, a parte de acrescentar campos em branco no banco de dados deu certo, mas quanto à não chamar o id, mesmo declarando ele como você tinha falado

where id_user='$usuario_id'"
ele não chama, tentei até declarar assim:
$id_user=$_GET["id_user"];
e nada adiantou, ele retorna vazio. Percebi que ele não está passando pelo if do incluir, apenas passa para alterar e excluir e não altera e nem exclui , mas não entendo porque, o que estou fazendo de errado? =/ alguma sugestão? hehe troquei o problema do if no post de cima. Segue abaixo as alterações que fiz:
//EDITA O CONTEÚDO 

if($acao=="editar"){

echo"edita";

$sql=mysql_query("update user set nome='$nome',login='$login',senha='$senha', where id_user='$id_user'"); }

//EXCLUI O CONTEÚDO

elseif($acao=="excluir") {

echo"excluir";

$sql=mysql_query("delete * from user where id_user='$id_user'"); }

else{ //VERIFICANDO SE A SENHA ESTÁ OK

if(sizeof($erro)==0){

if($senha != $com_senha){

echo "A senha não confere com a confirmação da senha"; } }

else{

echo"insere";

$sql= mysql_query("insert into user (login, senha, nome) values ('".$nome."','".$usuario."', '".$senha."' )"); } }

Compartilhar este post


Link para o post
Compartilhar em outros sites

if(sizeof($erro)==0){

if($senha != $com_senha){

 

Você pode usar o "&&" No IF acima para verificar as duas condicoes! Nao Há a necessidade de dois "If's"!

 

if(sizeof($erro)==0 && $senha != $com_senha){

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.