Jump to content

Criar botão delete numa tabela


santospedro1993

Recommended Posts

Eu tenho uma tabela que automaticamente acrescenta uma linha quando tem novo cliente, acho que se diz listar conteúdo, so gostaria de saber como podia acrescentar tipo um botão noutra coluna para apagar o cliente nessa especifica coluna, ate agora so consegui por um que apagava tudo.... nao e la bem o que eu queria.

<?php
$res = mysql_query('select * from cliente'); /*Executa o comando SQL, no caso para pegar todos os usuarios do sistema e retorna o valor da consulta em uma variavel ($res)  */

echo '<div id="tabela"><table border=5><tr><td>Cliente</td><td>Morada</td><td>Localidade</td><td>Telefone</td></tr>';

/*Enquanto houver dados na tabela para serem mostrados será executado tudo que esta dentro do while */
while($escrever=mysql_fetch_array($res)){

/*Escreve cada linha da tabela*/
echo '<tr><td>' . $escrever["C_NOME"] . '</td><td>' . $escrever["C_MORADA"] . '</td><td>' . $escrever["C_LOCALIDADE"] . '</td><td>' . $escrever["C_TELEFONE"] . '</td></tr>';

}/*Fim do while*/

echo '</table></div>'; /*fecha a tabela apos termino de impressão das linhas*/

mysql_close($conn);file:///C:/Users/Home/Downloads/index.php

?>

Desculpem mandar assim sou novo aqui

Edited by brunoais
geshi!
Link to comment
Share on other sites

Boas,

antes de mais deves usar as tags de code=<linguagem> ente [], para que haja codehighlight, em vez de quote.

No while podes fazer em vez de

echo '<tr><td>' . $escrever["C_NOME"] . '</td><td>' . $escrever["C_MORADA"] . '</td><td>' . $escrever["C_LOCALIDADE"] . '</td><td>' . $escrever["C_TELEFONE"] . '</td></tr>';

podes fazer:

echo '<tr><td>' . $escrever["C_NOME"] . '</td><td>' . $escrever["C_MORADA"] . '</td><td>' . $escrever["C_LOCALIDADE"] . '</td><td>' . $escrever["C_TELEFONE"] . '</td><td>Botão para delete</td></tr>';

adicionando <td>Botão para delete</td> antes do ultimo </tr> assim a cada resultado que escrevas vais adicionar um espaço para o tal botão.

Para poderes apagar um registo em concreto é aconselhável trabalhares com a chave primária dos clientes, isto é, o seu ID, por norma. Se não estiveres a usar IDs aconselho a adicionares (chave primária e auto increment). Falo nisto porque não estou a ver referência alguma a um ID único.

Então para restringires o apagar apenas a um registo terás que na query SQL para apagar, adicionar: WHERE C_ID = id que terás que passar ao clique do botão delete.

Espero ter sido claro, qualquer dúvida responde.

Edited by psiico
Link to comment
Share on other sites

Eu já tratei de arranjar o teu post. Não me dês muito trabalho, ok 😉?

"[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%.

Link to comment
Share on other sites

Já resolvi a parte de criar um botão delete, agora terei de pensar no de update. Mas estou neste momento a tratar do visual e a pensar como vai funcionar o meu login visto que irei ter 2 a 3 tabelas, os user alunos, director e admin. Se tiverem sugestões avisem.

O Update é igual ao outro botão, geras a tabela com o botão lá dentro e dás-lhe a acção pretendida.

Para que precisas de 3 tabelas para o login?

Link to comment
Share on other sites

... irei ter 2 a 3 tabelas, os user alunos, director e admin ...

Não, não, não.

Faz uma única tabela em que uma das colunas tem o tipo de user. Este tipo seria a Foreign Key doutra tabela cujas linhas identificam o tipo de utiilzador (aluno, director, admin).

Uma pergunta para ires pensando: o director não pode ser um aluno? um ex-aluno? o admin?

What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Link to comment
Share on other sites

  • 2 weeks later...
<?php
if(!isset($_POST['join'])){
echo '<div class="form"><center><table border="1">
<form action="register.php" method="POST">
<tr align="right"><td>Utilizador
<input type="text" name="user"><br>
<tr align="right"><td>Nome
<input type="text" name="nome"><br>
<tr align="right"><td>Password
<input type="password" name="password"><br>
<tr align="right"><td>Password
<input type="password" name="password2"><br>
</table>
<input type="submit" name="join" value="Criar Conta">
</form></center></div>';
} else{
$user=$_POST["user"];
$nome=$_POST["nome"];
$password=$_POST["password"];
$password2=$_POST["password2"];
if($password!= $password2){
echo "<center><p>As passwords devem ser iguais</center>";exit;
}
include ("ligaBD.php");
$existe="select * from users where user='".$user."'";
$faz_existe= mysqli_query($ligaBD, $existe);
$jaexiste= mysqli_num_rows($faz_existe);
if ($jaexiste==0){
$insere_user = "insert users values('".$user."', '".$nome."', '".$password."')";
$faz_insere_user = mysqli_query($ligaBD, $insere_user);
echo "<center>Registo Completo - <a href=\"index.php\">Entrar na Conta</center></a>";
}
else
echo "<center><p> O Utilizador ja se encontra registado!</center>";
}
?>

Alguem me podia ajudar, esta tudo a funcinar o unico problema e que nao esta a inserer na base de dados, suponho que o erro esteja aqui:

$insere_user = "insert users values('".$user."', '".$nome."', '".$password."')";
$faz_insere_user = mysqli_query($ligaBD, $insere_user);
Edited by santospedro1993
Link to comment
Share on other sites

<?php
if(!isset($_POST['join'])){
echo '<div class="form"><center><table border="1">
<form action="register.php" method="POST">
<tr align="right"><td>Utilizador
<input type="text" name="user"><br>
<tr align="right"><td>Nome
<input type="text" name="nome"><br>
<tr align="right"><td>Password
<input type="password" name="password"><br>
<tr align="right"><td>Password
<input type="password" name="password2"><br>
</table>
<input type="submit" name="join" value="Criar Conta">
</form></center></div>';
} else{
$user=$_POST["user"];
$nome=$_POST["nome"];
$password=$_POST["password"];
$password2=$_POST["password2"];
if($password!= $password2){
echo "<center><p>As passwords devem ser iguais</center>";exit;
}
include ("ligaBD.php");
$existe="select * from users where user='".$user."'";
$faz_existe= mysqli_query($ligaBD, $existe);
$jaexiste= mysqli_num_rows($faz_existe);
if ($jaexiste==0){
$insere_user = "insert users values('".$user."', '".$nome."', '".$password."')";
$faz_insere_user = mysqli_query($ligaBD, $insere_user);
echo "<center>Registo Completo - <a href=\"index.php\">Entrar na Conta</center></a>";
}
else
echo "<center><p> O Utilizador ja se encontra registado!</center>";
}
?>

Alguem me podia ajudar, esta tudo a funcinar o unico problema e que nao esta a inserer na base de dados, suponho que o erro esteja aqui:

$insere_user = "insert users values('".$user."', '".$nome."', '".$password."')";
$faz_insere_user = mysqli_query($ligaBD, $insere_user);

dá algum erro? ou simplesmente não insere?

Link to comment
Share on other sites

$insere_user = "insert users values('".$user."', '".$nome."', '".$password."')";
$faz_insere_user = mysqli_query($ligaBD, $insere_user);

Experimenta assim, com o proprio PHP / MySQL a dizer-te o que esta mal:

$insere_user = "insert users values('".$user."', '".$nome."', '".$password."')";
$faz_insere_user = mysqli_query($ligaBD, $insere_user) or die(mysqli->error($ligaBD));

What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Link to comment
Share on other sites

Column count doesn't match value count at row 1

Ja deu o erro, fui a net e vi que tenho de por o (no meu caso) o campo id mas esta feito assim:

$query = "INSERT INTO table (id, first_name, last_name)
         VALUES('','$_POST[first_name]','$_POST[last_name]')";

mas no meu o codigo esta feito de outra maneira:

$insere_user = "insert users values('".$user."', '".$nome."', '".$password."')";
$faz_insere_user = mysqli_query($ligaBD, $insere_user) or die(mysqli->error($ligaBD));

Como faço no meu código?

Obrigado por me estarem a ajudar:D

Link to comment
Share on other sites

Aconselho-te a não misturar a maneira procedimental com o OO do mysqli. Usa só um dos 2 (aconselho o Object Oriented).

"[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%.

Link to comment
Share on other sites

Bem.. Obrigado por tudo pessoal vou começar a fazer o relatório do site que fiz, isto e para um projecto de Programação de Sistemas Informáticos (ou de informação, acho que mudou). Se quiserem ver como ficou e um site básico, para mim serviu para basicamente aprender a fazer um site com base de dados, porque este ano era o ano em que íamos dar isto mas o nosso stor punha se a ver o bolsa e nos claro, íamos jogar. Acho que ja estou um bocado melhor vamos la ver agora se faço isto para a pap..

Se quiserem ver e dar alguma ideia a nível de sugestões de segurança, ou algo que podia ficar melhor:

http://darkps.byethost14.com/

Para verem a área admin: user: oi pass: oi

Ja me esquecia, o código ficou assim:

$insere_user = "insert INTO users (id, nome, user, password) values('', '".$nome."', '".$user."', '".$password."')";
$faz_insere_user = mysqli_query($ligaBD, $insere_user) or die(mysqli_error($ligaBD));
Edited by santospedro1993
Link to comment
Share on other sites

Há várias hipóteses, mas para treino talvez devas começar por testas a mais simples de implementar (segurança mais reduzida): md5.

A encriptação é feita aquando o registo, e depois é gravada na base de dados. Depois no login só tens de encriptar o parametro que utilizador colocar na password e comparar com o que existe na base de dados.

Link to comment
Share on other sites

Ja consegui por no login:

$sql = "SELECT `id`, `nome`, `nivel` FROM `users` WHERE (`user` = '". $user ."') AND (`password` = '".md5($password) ."') LIMIT 1";

E no registo tambem

$insere_user = "insert INTO users (id, nome, user, password) values('', '".$nome."', '".$user."', '".md5($password)."')";

Esta certo?

Edited by santospedro1993
Link to comment
Share on other sites

Acho que acabaste de ter um ataque inesperado deste requinte. De qq modo:

$password=md5($_POST["password"]);

md5 é hashing e não cifração. Há que perceber bem a diferença entre essas duas coisas.

Edited 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%.

Link to comment
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.