Ajout bouton modifier pour chaque ligne de la table de mise à jour de la base de données en PHP

J'ai créé une requête simple de récupérer les enregistrements de ma base de données et de les transmettre à un html. Je veux ajouter une modification/bouton afficher pour chaque ligne donc, après quelques recherches, j'ai fini avec cela:

$query = mysqli_query($con, "SELECT * FROM mytable") or die(mysqli_error($con));
if(mysqli_num_rows($query) > 0) {
    while($row = mysqli_fetch_array($query)) {
        echo "<tr><td>".$row['pId']."</td>";
        echo "<td>".$row['data1']."</td>";
        echo "<td>".$row['data2']."</td>";
        echo "<td><form action='detailform.php' method='POST'><input type='hidden' name='tempId' value='".$row["pId"]."'/><input type='submit' name='submit-btn' value='View/Update Details' /><form></td>";
    }
}

Cela fonctionne très bien pour 1 dossier. Mais si j'ai 2 ou plus, l'enregistrement le plus récent est toujours extraites indépendamment de l'enregistrement que vous avez sélectionné. Par exemple, si vous avez 5 enregistrements et que vous sélectionnez un enregistrement, le 5ème record sera toujours sélectionné, de sorte que je suis incapable de mettre à jour les enregistrements précédents. Pourquoi est-ce qui se passe? Ai-je raté quelque chose?

Ne sais pas si cela aide mon cas, mais voici mes la logique de base de mon detailform.php:

if(isset($_POST["tempId"]){ 
     //pass data using post then update. Here's where I keep getting only the latest record regardless of selected record from previous page
} else { //add data }
InformationsquelleAutor user1597438 | 2014-02-03