c.orelhas Posted June 18, 2013 at 10:08 AM Report #513561 Posted June 18, 2013 at 10:08 AM Bom dia pessoal, Estou a desenvolver um pedaço de código capaz de apagar os utilizadores que eu tenho inseridos na base de dados, no entanto tenho algumas duvidas quanto ao como fazer o código, visto não saber se é necessário ou não utilizador o uso de sessões. <?php session_start() ?> <?php if($_SESSION["mail"]=="A"){ echo $_SESSION["nome"]; echo"<br><form action='login_success.php' method='POST'><input type='submit' name='sair' value='Sair'></button></form>"; } else{ echo "<script>alert('Tem de ser administrador para ter acesso')</script>"; echo "<meta http-equiv='refresh' content='0;URL=index.php'>"; } ?> <html> <body background="./images/fundo.jpg"> <?php include("conn.php"); $email=$_POST['delID']; $sql="Select * From produto where email='$email'"; $resultado=mysql_query($sql,$ligacao); $registo=mysql_fetch_array($resultado); if(isset($email)) { $sql="delete from utilizador where email='$email'"; $resultado=mysql_query($sql,$ligacao); echo "<meta http-equiv='refresh' content='0;URL=user_admin.php'>"; } else { echo "<script>alert('Falha ao apagar'.)</script>.".mysql_error(); echo "<meta http-equiv='refresh' content='0;URL=user_admin.php'>"; } ?> </body> </html> Tenho este código, mas ainda não consegui apagar o utilizador..
brunoais Posted June 18, 2013 at 10:14 AM Report #513564 Posted June 18, 2013 at 10:14 AM (edited) Aonde é que está o formulário? Tens a certeza de que isso gera HTML válido? Eu tenho 100% a certeza de que não. Edited June 18, 2013 at 10:17 AM by brunoais "[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31 Life is a genetically transmitted disease, induced by sex, with death rate of 100%.
c.orelhas Posted June 18, 2013 at 10:23 AM Author Report #513570 Posted June 18, 2013 at 10:23 AM <?php session_start() ?> <?php if($_SESSION["mail"]=="A"){ echo $_SESSION["nome"]; echo"<br><form action='login_success.php' method='POST'><input type='submit' name='sair' value='Sair'></button></form>"; } else{ echo "<script>alert('Tem de ser administrador para ter acesso')</script>"; echo "<meta http-equiv='refresh' content='0;URL=index.php'>"; } ?> <html> <body background="./images/fundo.jpg"> <?php include("conn.php"); $sql="select * from utilizador"; $resultado=mysql_query($sql,$ligacao); echo "<table align='center' border='2'>"; echo "<td>Email</td><td>Nome</td><td>Apelido</td><td>Morada</td><td>Código Postal</td><td>Localidade</td><td>Telemovél</td><td>Tipo Utilizador</td><td>Estado User</td>"; if($resultado){ while($registo=mysql_fetch_array($resultado)){ $email=$registo['email']; $nom=$registo['nome']; $apelido=$registo['apelido']; $morada=$registo['morada']; $postal=$registo['cod_postal']; $local=$registo['localidade']; $telm=$registo['telm']; $tipo=$registo['tipo_user']; $estado=$registo['estado_user']; echo "<tr><td>$email</td><td>$nom</td><td>$apelido</td><td>$morada</td><td>$postal</td><td>$local</td><td>$telm</td><td>$tipo</td><td>$estado</td> <td><form action='del_utilizador.php' method='POST'><button type='submit' value='$email' name='delID'><img src='./images/del.png'></button></form></td> <td><form action='edit_user.php' method='POST'><button type='submit' value='$email' name='editID'><img src='./images/edit.png'></button></form></td>"; } echo "<td><form action='inser_user.php' method='POST'><button type='submit' value='$email' name='inserID'><img src='./images/add_user.png'/></button></td></form></tr>"; echo "</table>"; }else echo "Sem resultados"; echo"<form action='admin.php' method='POST'><input type='submit' value='Voltar' name='home'></button></form>"; ?> </body> </html> É suposto ir apanhar estes dados e ao carregar no botão de eliminar chamar esse php que apresentei em cima.
brunoais Posted June 18, 2013 at 10:45 AM Report #513583 Posted June 18, 2013 at 10:45 AM Começa com HTML válido, HTML4strict ou HTML5. Depois conversamos... Tens que aprender a fazer como deve ser. Já agora, se estruturasses o código para ficar mais legível seria muito bom. "[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31 Life is a genetically transmitted disease, induced by sex, with death rate of 100%.
Rui Carlos Posted June 19, 2013 at 09:09 AM Report #513739 Posted June 19, 2013 at 09:09 AM Não percebi o que é que vais fazer à tabela produtos. De qualquer modo, podes começar por mostrar mais algumas mensagens de feedback. Por exemplo, faz $mysql_query(...) or die(mysql_error());. Podias também antes da eliminação mostrar uma mensagem a dizer "A eliminar utilizador com email xyz@...". Podes também experimentar executar a query directamente na BD, para verificar se produz o resultado esperado. Para além dos problemas do HTML (que não se resumem à versão), também não é muito conveniente usares as funções mysql_*. Rui Carlos Gonçalves
bioshock Posted June 20, 2013 at 06:19 PM Report #514115 Posted June 20, 2013 at 06:19 PM http://stuffpinho.com/php-the-way-mysqli-works-part-4-queries/
jpfelgueiras Posted June 21, 2013 at 11:25 AM Report #514207 Posted June 21, 2013 at 11:25 AM estas a fazer echo antes de declarares a tag <html> tens de rever o teu codigo !
c.orelhas Posted June 27, 2013 at 10:34 AM Author Report #515572 Posted June 27, 2013 at 10:34 AM (edited) Andei a alterar o meu código e ao clicar no botão para eliminar vai chamar este php para eliminar o utilizador, no entanto dá-me erro no 1º if com o execute.. Alguém me pode dar uma noção melhor do que estou a fazer de errado ? <?php $ligacao = new mysqli($this->localhost, $this->root, $this->root, $this->loja_mercearia); $query = $ligacao->prepare("DELETE FROM 'utilizador' WHERE 'email' = email"); $query->bind_param("s",$email) if($query->execute()){ if($query->affected_rows > 0){ return true; }else{ return false; } } else{ return false; } $query->close(); $ligacao->close(); ?> Edited June 27, 2013 at 10:41 AM by c.orelhas
Rui Carlos Posted June 27, 2013 at 01:38 PM Report #515643 Posted June 27, 2013 at 01:38 PM Acho que tens a query mal. Experimenta isto: $query = $ligacao->prepare("DELETE FROM utilizador WHERE email = ?"); Rui Carlos Gonçalves
bioshock Posted June 27, 2013 at 05:00 PM Report #515748 Posted June 27, 2013 at 05:00 PM (edited) E provavelmente, nesta linha também tens mal: $ligacao = new mysqli($this->localhost, $this->root, $this->root, $this->loja_mercearia); Chamas a variável root duas vezes? Qual é o conteúdo dela? E já agora, estás a usar isto como uma função de uma classe? É que se não ele até se devia queixar logo por causa do 'this->'. Edited June 27, 2013 at 05:00 PM by bioshock
c.orelhas Posted June 28, 2013 at 08:14 AM Author Report #515840 Posted June 28, 2013 at 08:14 AM Bioshock, nessa linha estou a chamar a variavel root duas vezes por causa que é o user e pass que utilizo.
bioshock Posted June 28, 2013 at 04:22 PM Report #516020 Posted June 28, 2013 at 04:22 PM E o user e pass são idênticos? Se sim, ok. Estás a usar o código numa classe? Se sim, ok. Leste a sugestão do @Rui?
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now