Buenas.
Idea al vuelo: supongamos que la fila de tu tabla es
Código PHP:
<tr><td>$row['nombre']</td><td>$row['apellido']</td></tr>
Le añadimos un botoncito
Código PHP:
<tr><td>$row['nombre']</td><td>$row['apellido']</td><td><a href="$_SERVER['PHP_SELF']?nombre=$row['nombre']&apellido=$row[apellido]"><img src="..."></a></td></tr>
Y el formulario:
Código PHP:
//Creamos las variables que van a tomar por defecto los inputs como valor
//Si hemos enviado variables a través del botón les asignamos ese valor
if (isset($_GET['nombre'])) {
$nombre = $_GET['nombre'];
$apellido = $_GET['apellido'];
} else {
//Si no, las dejamos vacías
$nombre = '';
$apellido = '';
}
<form action="loquesea" method="POST">
Nombre: <input type="text" name="nombre" value="$nombre">
Apellido: <input type="text" name="apellido" value="$apellido">
<input type="submit" value="enviar">
</form>
Pega de hacer esto: que la consulta que muestra todas tus filas con registros de la tabla se repetiría al pulsar el botón, y que si estás trabajando con variables tendrías que enviarlas de nuevo. No se me ocurre ninguna forma de hacerlo sin recargar la página, por lo que el problema de la doble consulta estará siempre, a no ser que uses AJAX. Otra forma de evitarlo sería colocando el formulario en una página diferente.
Espero que te sirva de algo.
Saludos