Jump to content
Fórum Script Brasil
  • 0

(Resolvido) gerir ficheiro em Mysql / HTML / PHP


DanielAz

Question

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 to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 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! :)

Edited by wootzor
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...