DanielAz Postado Abril 16, 2015 Denunciar Share Postado Abril 16, 2015 Olá pessoal Sou novo aqui e gostava de pedir ajuda no seguinte, usando html, php e mysql: Pretendo gerir os registos de um ficheiro de pessoas, apresentando apenas o campo-chave (nome): Francisco Manuel Carlos Maria … … de maneira que o utilizador possa alterar um registo clicando no nome respetivo Alguma sugestão? Obg Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 wootzor Postado Abril 17, 2015 Denunciar Share Postado Abril 17, 2015 (editado) O que pretendes fazer é um pouco complexo para conseguir explicar aqui. De qualquer forma, normalmente os processos de edição fazem-se passando o id do registo entre páginas, e não o nome. Vou tentar colocar aqui apenas os passos lógicos: Tipicamente vais precisar de dois ficheiros, um para apresentar os dados e outro para o processo de edição (users.php e edit.php, por exemplo). Passas o id do registo a editar entre ficheiros por query string ("/edit.php?id=1"). Neste segundo ficheiro procedes à actualização do registo. Utilizei a seguinte estrutura como exemplo (tabela funcionario): users.php (lista de utilizadores): <?php //após estabelecer a ligação à BD $query = "SELECT * FROM `funcionario`"; $result = $mysqli->query($query); ?> <!doctype html> <html> <head> <title>.</title> </head> <body> <table border> <thead> <th>Nome</th> <th>Função</th> <th>Editar</th> </thead> <tbody> <?php if ($result->num_rows > 0) { while ($row = $result->fetch_row()) { echo "<tr><td>" . $row[1] . "</td><td>" . $row[2] . "</td><td><a href='edit.php?id=" . $row[0] . "'>Editar</td></tr>"; } } ?> </tbody> </table> </body> </html> Ficheiro edit.php (edição dos detalhes de utilizador): <?php header('Content-type: text/html; charset=utf-8'); $id = isset($_GET["id"]) ? $_GET["id"] : null; $mysqli = new mysqli($host, $user, $passw, $db); //substituir pelas tuas credenciais de acesso à BD if ($mysqli->connect_errno) { printf("Connect failed: %s\n", $mysqli->connect_error); exit(); } if (isset($_POST["nome"]) && isset($_POST["funcao"])) { $nome = $_POST["nome"]; $funcao = $_POST["funcao"]; $query = "UPDATE `funcionario` SET `nome` = '$nome', `funcao` = '$funcao' WHERE `id` = $id"; $result = $mysqli->query($query); if ($result) { echo "Registo editado!"; } else { echo "Ocorreu um erro ao editar o registo com o ID $id"; } } $query = "SELECT * FROM `funcionario` WHERE `id` = $id"; $result = $mysqli->query($query); ?> <!doctype html> <html> <head></head> <body> <form action="<?php echo $_SERVER['PHP_SELF']; ?>?id=<?php echo $id; ?>" method="POST"> <table border> <thead> <th>ID</th> <th>Nome</th> <th>Função</th> </thead> <tbody> <tr> <?php while ($row = $result->fetch_assoc()) { ?> <td><?php echo $row['id']; ?></td> <td><input type="text" name="nome" value="<?php echo $row['nome']; ?>" /></td> <td><input type="text" name="funcao" value="<?php echo $row['funcao']; ?>" /></td> <?php } //endwhile; ?> </tr> </tbody> </table> <button type="submit">Editar</button> </form> </body> </html> Como disse, é muito código para explicar ao pormenor, embora o processo em si seja relativamente simples a partir do momento em que se percebe a lógica. Espero que ajude! :) Editado Abril 17, 2015 por wootzor Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 DanielAz Postado Abril 18, 2015 Autor Denunciar Share Postado Abril 18, 2015 amigo wootzor, foi uma boa ajuda! abraço e obrigado Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
DanielAz
Olá pessoal
Sou novo aqui e gostava de pedir ajuda no seguinte, usando html, php e mysql:
Pretendo gerir os registos de um ficheiro de pessoas, apresentando apenas o campo-chave (nome):
Francisco
Manuel
Carlos
Maria
…
… de maneira que o utilizador possa alterar um registo clicando no nome respetivo
Alguma sugestão?
Obg
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.