Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) gerir ficheiro em Mysql / HTML / PHP


DanielAz

Pergunta

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

  • 0

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:

  1. 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).
  2. Passas o id do registo a editar entre ficheiros por query string ("/edit.php?id=1").
  3. Neste segundo ficheiro procedes à actualização do registo.

Utilizei a seguinte estrutura como exemplo (tabela funcionario):

jtmRk.jpg

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 por wootzor
Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...