santospedro1993 Posted June 7, 2012 at 11:28 PM Report Share #461274 Posted June 7, 2012 at 11:28 PM (edited) 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 June 8, 2012 at 12:36 PM by brunoais geshi! Link to comment Share on other sites More sharing options...
psiico Posted June 7, 2012 at 11:53 PM Report Share #461278 Posted June 7, 2012 at 11:53 PM (edited) 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 June 7, 2012 at 11:55 PM by psiico Psiico // Portfolio Link to comment Share on other sites More sharing options...
brunoais Posted June 8, 2012 at 12:37 PM Report Share #461387 Posted June 8, 2012 at 12:37 PM 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 More sharing options...
santospedro1993 Posted June 10, 2012 at 01:56 AM Author Report Share #461722 Posted June 10, 2012 at 01:56 AM 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. Link to comment Share on other sites More sharing options...
dash Posted June 10, 2012 at 07:46 AM Report Share #461731 Posted June 10, 2012 at 07:46 AM 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 More sharing options...
pmg Posted June 10, 2012 at 10:23 AM Report Share #461736 Posted June 10, 2012 at 10:23 AM ... 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 More sharing options...
santospedro1993 Posted June 18, 2012 at 03:48 PM Author Report Share #463692 Posted June 18, 2012 at 03:48 PM (edited) <?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 June 18, 2012 at 03:56 PM by santospedro1993 Link to comment Share on other sites More sharing options...
MASNathan Posted June 18, 2012 at 04:20 PM Report Share #463710 Posted June 18, 2012 at 04:20 PM <?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 More sharing options...
santospedro1993 Posted June 18, 2012 at 04:55 PM Author Report Share #463727 Posted June 18, 2012 at 04:55 PM Ups desculpem, simplesmente não insere nada Link to comment Share on other sites More sharing options...
dash Posted June 18, 2012 at 05:11 PM Report Share #463742 Posted June 18, 2012 at 05:11 PM Assim às cegas: $insere_user = "insert users values('".$user."', '".$nome."', '".$password."')"; -> $insere_user = "insert INTO users values('".$user."', '".$nome."', '".$password."')"; Link to comment Share on other sites More sharing options...
pmg Posted June 18, 2012 at 05:13 PM Report Share #463746 Posted June 18, 2012 at 05:13 PM $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 More sharing options...
santospedro1993 Posted June 18, 2012 at 05:50 PM Author Report Share #463767 Posted June 18, 2012 at 05:50 PM 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 More sharing options...
dash Posted June 18, 2012 at 05:59 PM Report Share #463771 Posted June 18, 2012 at 05:59 PM (edited) Isso é lógica... INSERT INTO <a tua tabela - utilizadores> (os campos da tabela) VALUES(o valor que cada campo deve tomar) Edited June 18, 2012 at 06:00 PM by dash Link to comment Share on other sites More sharing options...
brunoais Posted June 18, 2012 at 06:00 PM Report Share #463772 Posted June 18, 2012 at 06:00 PM 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 More sharing options...
santospedro1993 Posted June 18, 2012 at 06:16 PM Author Report Share #463782 Posted June 18, 2012 at 06:16 PM (edited) 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 June 18, 2012 at 06:34 PM by santospedro1993 Link to comment Share on other sites More sharing options...
dash Posted June 18, 2012 at 07:09 PM Report Share #463796 Posted June 18, 2012 at 07:09 PM Dei uma vista de olhos e a dica sobre segurança que te posso dar é uma regra de ouro: as passwords em circunstância alguma devem ficar na base de dados descodificadas. Link to comment Share on other sites More sharing options...
santospedro1993 Posted June 18, 2012 at 08:12 PM Author Report Share #463809 Posted June 18, 2012 at 08:12 PM Qual método de encriptação recomendas? Tenho de por essa encriptação no registo e no login certo? Link to comment Share on other sites More sharing options...
dash Posted June 18, 2012 at 08:35 PM Report Share #463823 Posted June 18, 2012 at 08:35 PM 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 More sharing options...
santospedro1993 Posted June 18, 2012 at 09:07 PM Author Report Share #463842 Posted June 18, 2012 at 09:07 PM (edited) 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 June 18, 2012 at 09:19 PM by santospedro1993 Link to comment Share on other sites More sharing options...
brunoais Posted June 18, 2012 at 09:12 PM Report Share #463846 Posted June 18, 2012 at 09:12 PM (edited) 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 June 18, 2012 at 09:12 PM 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 More sharing options...
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