KahH 0 Denunciar post Postado Julho 16, 2010 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
Uélio Nobre 0 Denunciar post Postado Julho 16, 2010 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
KahH 0 Denunciar post Postado Julho 17, 2010 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
falcao544 11 Denunciar post Postado Julho 18, 2010 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