Pelo que eu vi seria necessário criar um formulário por linha, o problema é que isto não é algo semântico, ou seja, ou o formulário pega a tabela inteira (como se fez no HTML postado), ou fica dentro de uma célula, fazer a tag form pegar a linha (TR) é algo não recomendado pelas regras do W3C.
Porém, nada que um pouco de Javascript não resolva.
Como eu suponho que o ID é automático no banco de dados, se poderia eliminar o formulário que pega a tabela inteira e fazer o seguinte ajuste no HTML:
<?php $dados = listaDados($conexao);
foreach($dados as $dado) : ?>
<tbody>
<tr>
<td name="campo1"> <?php echo $dado['Campo1']; ?> </td>
<td name="campo2"> <?php echo $dado['Campo2']; ?> </td>
<td name="campo3"> <?php echo $dado['Campo3']; ?> </td>
<td name="campo4"> <?php echo $dado['Campo4']; ?></td>
<td name="campo5"> <?php echo $dado['Campo5']; ?> </td>
<td><input type="text" id="campo6_<? echo $dado['id']?>" name="campo6_<? echo $dado['id']?>" class="form-control"><? echo $dado['Campo6']?></input></td>
<td><input type="text" id="campo7_<? echo $dado['id']?>" name="campo7_<? echo $dado['id']?>" class="form-control"><? echo $dado['Campo7']?></input></td>
<td><input type="text" id="campo8_<? echo $dado['id']?>" name="campo8_<? echo $dado['id']?>" class="form-control"><? echo $dado['Campo8']?></input></td>
<td>
<form method="POST" name="form_<? echo $dado['id']?>" action="adiciona-dado.php" onSubmit="return EnviarDados(this, <? echo $dado['id']?>)">
<input type="hidden" name="campo6" value="">
<input type="hidden" name="campo7" value="">
<input type="hidden" name="campo8" value="">
<input type="hidden" name="id" value="<? echo $dado['id']?>">
<input type="submit" class="btn" value="Incluir">
</form>
</td>
</tr>
</tbody>
<?php endforeach ?>
No exemplo acima, é criado um form dentro da última coluna de cada linha. Os campos editáveis ganham um id único, e cada form tem um nome único. Todos os campos são hidden, sendo que o id é o único a estar preenchido
O javascript a ser executado ao enviar o formulário vai transferir os campos da linha atual para o formulário correspondente, que vai ser postado para a pagina onde vai ser feita a atualização dos dados
<script type="text/javascript">
function EnviarDados(form, id){
form.campo6.value = document.getElementById("campo6_" + id).value;
form.campo7.value = document.getelementbyId("campo7_" + id).value;
form.campo8.value = document.getelementbyId("campo8_" + id).value;
}
</script>
Para receber, os dados, seria assim:
<?php
//variáveis//
$id = "";
$campo6 = "";
$campo7 = "";
$campo8 = "";
if (isset($_POST["id"])){
$id = $_POST["id"];
}
if (isset($_POST["campo6"])){
$campo6 = $_POST["campo6"];
}
if (isset($_POST["campo7"])){
$campo7 = $_POST["campo7"];
}
if (isset($_POST["campo8"])){
$campo8 = $_POST["campo8"];
}
if ($id != ""){
if (insereDado($conexao, $id,$campo6, $campo7, $campo8)) {
?>
<p class="text-success"> Resposta adicionada com sucesso!</p>
<?
} else {
?>
<p class="text-danger">Algum campo não foi preenchido corretamente.</p>
<?
}
} else {
?>
<p class="text-danger">Não recebi o ID.</p>
<?
}
?>