• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

blackpower

criar botao para apagar user

8 mensagens neste tópico

bem ando de volta disto e ninguém consegue ajudar eu criar um botão em que quando carregasse apagava uma linha da base de dados mas o k consegui fazer e apagar a tabela toda que mt mau.

códico da parte de tabela:

<head>
<title>CSS Tables</title>
<link href="styles.css" rel="stylesheet" type="text/css" />
</head>

<body>
<?php
$conn = mysql_connect("localhost","root","") or die (mysql_error());
mysql_select_db("pap",$conn) or die (mysql_error());
$query = "SELECT * FROM perfil ORDER BY user";
$result = mysql_query ($query) or die (mysql_error());
?>

<table id="mytable" cellspacing="0" summary="">
  <tr>
    
<th scope="col" abbr="Nome">Nome</th>
<th scope="col" abbr="Password">Password</th>
<th scope="col" abbr="Admin">Admin</th>


  
  </tr>
  <?php
while($row = mysql_fetch_assoc($result)){
echo '<tr><td>'.$row ["user"].'</td>';
echo '<td>'.$row ["pass"].'</td>';
echo '<td>'.$row ["admin"].'</td><td>';
echo '<form METHOD ACTION="connapagaruser.php">
<input type=submit value="Apagar" name=apagar>';
}
mysql_free_result ($result);
mysql_close($conn);

?>
</table>
</body>
</html>


codico apagar:
<?php

$con = mysql_connect("localhost","root","");

mysql_select_db("pap", $con);

mysql_query("DELETE FROM perfil where user=='$user' ");

mysql_close($con);

?>

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

altera esse == para =, estas a fazer uma instrução de sql, não é uma comparação :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

tens q fazer 1 delete na base de dados pelo nome ou ID da tabela.

ex:

mysql_query("DELETE FROM users where ID='Nome da pessoa'");

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O problema está mesmo nos dois sinais de igual (==) deves usar so um, se for um campo varchar podes tambem usar LIKE

EX:

DELETE FROM `tabela_a_apagar` WHERE `campo_de_verificacao` LIKE 'string';

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Já agora tenta assim

<?php
//ficheiro do formulario
while($row = mysql_fetch_assoc($result)){

echo '<form method="post" action="connapagaruser.php">
<tr>
<td><input type="hidden" name="user" value="'.$row ["user"].'" />'.$row ["user"].'</td>
<td>'.$row ["pass"].'</td>
<td>'.$row ["admin"].'</td>
<td><input type="submit" value="apagar" /></td>
</tr>
</form>';
}
mysql_free_result ($result);
mysql_close($conn);

?>

<?php
//ficheiro connapagaruser.php

$con = mysql_connect("localhost","root","");
mysql_select_db("pap", $con);
mysql_query('DELETE FROM perfil where user=\''.$_POST['user'].'\';');
mysql_close($con);

?>

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

peço desculpa pelo portugues,

e o seguinte como sei k nakela linha da dados quando carregar no botao para delete ele so vai mesmo apagar so mente aquela linha.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

para apagar uma linha SÓ, em vez de utilizares LIKE utiliza = porque pode apagar outras sem intenção.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Se o campo for único, só apaga uma linha visto não poder haver entradas duplicadas nesse campo e aí esta instrução do psiico funciona:

mysql_query('DELETE FROM perfil where user=\''.$_POST['user'].'\';');

Se puderes ter dados duplicados nesse campo acrescenta o LIMIT 1 à instrução do psiico:

mysql_query('DELETE FROM perfil where user=\''.$_POST['user'].'\' LIMIT 1;');

neste caso garantes que só apagas uma linha, mas não sabes qual. Para apagares a linha que queres, tens de encontrar uma forma de fazeres um DELETE com os dados que te garantam que é mesmo aquela linha para apagar.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora