Jump to content
couverse

Apagar utilizador de BD

Recommended Posts

couverse

Boas estou com um problema e que estou a fazer uma área em que o administrador da pagina tem acesso a quem esta registado e pode ver os detalhes do utilizador e alterar o problema esta no apagar em que apaga sempre o primeiro utilizador.

código em que escreve os utilizadores e faz o formulário:

<?php
$sql = "SELECT * FROM user ORDER BY username";
$consulta = mysqli_query($petrolms, $sql);
$numero = mysqli_num_rows($consulta);
if($numero >= 1)
{
?>
<table align="center" class="bordered">
<tr><center><h2>Tabela de Utilizadores</h2></center> </tr><br/>
<tr><td bgcolor="11D0CE">Utilizador</td>
<td bgcolor="11D0CE">E-mail</td>
<td bgcolor="11D0CE">Nome</td>
<td bgcolor="11D0CE">Alterar</td>
<td bgcolor="11D0CE">Eliminar</td>
<td bgcolor="11D0CE">Visualizar</td>
</tr>
<?php
while ($show = mysqli_fetch_assoc($consulta))
{
$user = $show["username"];
$email = $show["email"];
$password = $show["password"];
?>
<tr>
<td align="center"><?php echo $user; ?></td>
<td align="center"><?php echo $email; ?></td>
<td align="center"><?php echo $password; ?></td>

						 <form name='altera' method='POST' action="user.php">
							 <td align="center"><img src="images/edit.png" width="25px" height="25px" onclick="document.forms['altera'].submit(); return false;"></td>
									 <input type="hidden" name="user" value="<?php echo $user; ?>" />
									 <input type="hidden" name="tipo" value="altera" />
						 </form>
						 <form name="apaga" method='POST' action="user.php">
<td align="center"> <img src="images/delete.png" width="25px" height="25px" onclick="document.forms['apaga'].submit(); return false;" /></td>
								 <input type="hidden" name="user" value="<?php echo $user //o problema e passar o valor desta variavel para baixo ?>" />
								 <input type="hidden" name="tipo" value="apaga" />
							 </form>
							 <form name='visualiza' method='POST' action="user.php">
<td align="center">
									 <img src="images/pdf.png" width="25px" height="25px" onclick="document.forms['visualiza'].submit(); return false;" />
								 </td>
								 <input type="hidden" name="user" value="<?php echo $user; ?>" />
								 <input type="hidden" name="tipo" value="visualiza" />
						 </form>
</tr>
						 <?php
}
?>
					 <form name='cria' method='POST' action="user.php">
<td align='center' colspan='11' >
<img src="images/new.png" width="25px" height"25px" onclick="document.forms['cria'].submit(); return false;" />
								 </td>
								 <input type="hidden" name="tipo" value="cria" />
						 </form>
</table>
<a href=index.php> INDEX </a>
			   ?>

e o codigo de apagar:

<?php
$numero = 0;
}
else
{
header("Refresh: 4, ../index.php");
}
mysqli_free_result($consulta);
if(isset($_POST['tipo']))
{
if ($_POST['tipo'] == "altera")
{
echo '<script> window.location="painel/editar.php"; </script>';
}
else if ($_POST['tipo'] == "apaga")
{
mysql_query('DELETE FROM user where username=\''.$_POST['user'].'\';');
mysqli_query($petrolms, $delete);
mysqli_close($petrolms);
echo '<script> window.location=" '.$_SERVER['PHP_SELF'].' "; </script>';
}
else if ($_POST['tipo'] == "visualiza")
{
echo '<script> window.location=" '.$_SERVER['PHP_SELF'].' "; </script>';
}
else if ($_POST['tipo'] == "cria")
{
echo '<script> window.location="painel/novoregisto.php"; </script>';
}
}
}
?>

Sei que estão algumas variáveis que não uso e algum lixo mas isto e só um script de teste.

Se alguém me conseguisse ajudar agradecia imenso. :confused:

Couverse

Edited by couverse

Share this post


Link to post
Share on other sites
munkbozz

O layout da tua página por favor ;)

//o problema e passar o valor desta variavel para baixo

Eu não sei do que se trata, mas ao fazer login porque não guardas essas informações com $_SESSION? E não esquecendo de no topo do teu script colocar o seguinte método:

session_start();

.

Edited by munkbozz

Share this post


Link to post
Share on other sites
couverse

Boas o código completo e o seguinte (tem muito lixo mas isto e só para teste):

<?php
session_start(); // começa a session

if(!isset($_SESSION["sessioname"])){
header("location: login.html" );
}else{
require_once "config.php"; // inclui a conexão a database

$username = $_SESSION["sessioname"];
$sql = mysql_query("SELECT * FROM user WHERE username='$username'") or die("O nome de Utilizador ou Senha está incorrecto. MySQL erro:".mysql_error()); // vê se o username existe ou não
$result = mysql_fetch_array($sql); // põem as informações da database numa array


// A partir de aqui a pagina fica protegida...
echo "Bem-Vindo " . $_SESSION["sessioname"] . " o teu email é: " . $result['email'];
?>
<?php
require_once "config.php";
$petrolms = mysqli_connect("localhost", "root", "") or die ("Cannot Connect!");
mysqli_select_db($petrolms,"teste1") or die("Cannot Select DB!");
$sql = "SELECT * FROM user ORDER BY username";
$consulta = mysqli_query($petrolms, $sql);
$numero = mysqli_num_rows($consulta);
if($numero >= 1)
{
?>
<table align="center" class="bordered">
<tr><center><h2>Tabela de Utilizadores</h2></center> </tr><br/>
<tr><td bgcolor="11D0CE">Utilizador</td>
<td bgcolor="11D0CE">E-mail</td>
<td bgcolor="11D0CE">Nome</td>
<td bgcolor="11D0CE">Alterar</td>
<td bgcolor="11D0CE">Eliminar</td>
<td bgcolor="11D0CE">Visualizar</td>
</tr>
<?php
while ($show = mysqli_fetch_array($consulta))
{
$user = $show["username"];
$email = $show["email"];
$password = $show["password"];
?>
<tr>
<td align="center"><?php echo $user; ?></td>
<td align="center"><?php echo $email; ?></td>
<td align="center"><?php echo $password; ?></td>

						    <form name='altera' method='POST' action="user.php">
							  <td align="center"><img src="images/edit.png" width="25px" height="25px" onclick="document.forms['altera'].submit(); return false;"></td>
									 <input type="hidden" name="user" value="<?php echo $user; ?>" />
									 <input type="hidden" name="tipo" value="altera" />
						    </form>
						    <form name="apaga" method='POST' action="user.php">
<td align="center"> <img src="images/delete.png" width="25px" height="25px" onclick="document.forms['apaga'].submit(); return false;" /></td>
								    <input type="hidden" name="user" value="<?php  echo $user //o problema e passar o valor desta variavel para baixo ?>" />
								    <input type="hidden" name="tipo" value="apaga" />
							 </form>
							 <form name='visualiza' method='POST' action="user.php">
<td align="center">
									 <img src="images/pdf.png" width="25px" height="25px" onclick="document.forms['visualiza'].submit(); return false;" />
								    </td>
								    <input type="hidden" name="user" value="<?php echo $user; ?>" />
								    <input type="hidden" name="tipo" value="visualiza" />
						    </form>
</tr>
						    <?php
}
?>
					 <form name='cria' method='POST' action="user.php">
<td align='center' colspan='11' >
<img src="images/new.png" width="25px" height"25px" onclick="document.forms['cria'].submit(); return false;" />
								    </td>
								    <input type="hidden" name="tipo" value="cria" />
						    </form>
</table>
<a href=index.php> INDEX </a>
				    <?php
$numero = 0;
}
else
{
header("Refresh: 4, ../index.php");
}
mysqli_free_result($consulta);
if(isset($_POST['tipo']))
{
if ($_POST['tipo'] == "altera")
{
echo '<script> window.location="painel/editar.php"; </script>';
}
else if ($_POST['tipo'] == "apaga")
{
mysql_query('DELETE FROM user where username=\''.$_POST['user'].'\';');
mysqli_query($petrolms, $delete);
mysqli_close($petrolms);
echo '<script> window.location=" '.$_SERVER['PHP_SELF'].' "; </script>';
}
else if ($_POST['tipo'] == "visualiza")
{
echo '<script> window.location=" '.$_SERVER['PHP_SELF'].' "; </script>';
}
else if ($_POST['tipo'] == "cria")
{
echo '<script> window.location="painel/novoregisto.php"; </script>';
}
}
}?>

O problema e que eu quero apagar o utilizador em que eu carrego e o código estame a apagar sempre o primeiro user da lista.

Couverse

Share this post


Link to post
Share on other sites
munkbozz

Eu não sei se estou certo, mas falta-te gerar uma espécie de counter/contador ;) Lógico.

E mais se tu queres que o utilizador seja diferente terás de incluir isso dentro do ciclo para que percorra até o final dos resultados ->

while ($show = mysqli_fetch_array($consulta))
{
}

E essas tags PHP que tens, não estão no devido lugar.

Primeiro inicializas o contador (dentro do ciclo while que faz a leitura dos dados da tua base de dados).

$count++;

Primeira hipótese:

$count++;

Segunda:

$count = $count + 1;

E mais em baixo,

DELETE FROM <tabela> WHERE id = ...

Também é uma opção para além de apagar pelo nome, mas isso é ao teu critério ;)

Edited by munkbozz

Share this post


Link to post
Share on other sites
couverse

Boas o que eu queria era mesmo apagar pelo nome(neste caso a variável user que esta em cada linha do ciclo). Eja agora eu sei que estou a ser chato :confused: mas quais são as tags php que eu tenho mal?

Couverse

Edited by couverse

Share this post


Link to post
Share on other sites
munkbozz

Esta por exemplo...

<?php
while ($show = mysqli_fetch_array($consulta))
{
$user = $show["username"];
$email = $show["email"];
$password = $show["password"];
?>
<tr>
<td align="center"><?php echo $user; ?></td>
<td align="center"><?php echo $email; ?></td>
<td align="center"><?php echo $password; ?></td>

Para mim é muito confuso o que estás a fazer, além disso, sabes que podes imprimir código HTML em PHP? Tens a função echo, print entre outras.

Share this post


Link to post
Share on other sites
couverse

Boas amigo MUITO obrigado pela ajuda. Vou começar esta pagina de novo para ver se consigo já que esta esta muito mal lol. ;)

.Couverse

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.