Hola que tal.
Lo que deseas hacer es posible, lo que se me ocurre es mostrar los datos en un input con ciertos parámetros de validación o identificación en el input, de esa forma podrías ejecutar el proceso mediante el uso de ajax, te dejo un ejemplo a grandes rasgos.
archivo donde muestras los datos
Código PHP:
<!DOCTYPE HTML>
<html lang="es-ES">
<head>
<meta charset="UTF-8">
<title>actualizacion dinamica</title>
<style type="text/css">
table
{
width: 80%;
box-shadow: 0px 0px 3px 3px #545454;
margin: 0 auto;
}
table caption
{
background: #183B93;
color: #FFF;
}
table th
{
background: #444444;
color: #FFF;
text-transform: uppercase;
padding: 7px;
}
input
{
border: solid 2px #930000;
padding: 5px;
}
</style>
<script type="text/javascript" src="jquery-1.8.3.js"></script>
<script type="text/javascript">
function actualizaCampo ( arrastre )
{
var campo = $( arrastre ).attr( "id" )
var valor = $( arrastre ).val()
$.ajax({
type: 'post',
dataType: 'text',
url: 'controlador.php',
data: { campo: campo, valor: valor },
success: function(text)
{
//alert( text )
},
error: function()
{
alert( "Error al actualizar campo" )
}
});
}
</script>
</head>
<body>
<table>
<caption>Datos</caption>
<tr>
<th>lote</th>
<th>descrip</th>
</tr>
<?php
$mysqli = new mysqli( "localhost", "tu_usuario", "tu_pass", "tu_db" );
if ( $mysqli->connect_errno )
{
echo "Falló la conexión a MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}
$mysqli->real_query( "SELECT * FROM a ORDER BY id ASC" );
$resultado = $mysqli->use_result();
while ( $fila = $resultado->fetch_assoc() )
{
echo "
<tr>
<td><input type=\"text\" name=\"{$fila['id']}_lote\" id=\"{$fila['id']}_lote\" value=\"{$fila['lote']}\" onchange=\"actualizaCampo( this )\"></td>
<td><input type=\"text\" name=\"{$fila['id']}_descrip\" id=\"{$fila['id']}_descrip\" value=\"{$fila['descrip']}\" onchange=\"actualizaCampo( this )\"></td>
</tr>
";
}
?>
</table>
</body>
</html>
archivo donde actualizas los datos
Código PHP:
<?php
// dividimos la variable campo para identificar que registro se debe de actualizar
$campos = explode( "_", $_POST['campo'] );
$mysqli = new mysqli( "localhost", "tu_usuario", "tu_pass", "tu_db" );
if ( $mysqli->connect_errno )
{
echo "Falló la conexión a MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}
$mysqli->real_query( "UPDATE a set {$campos[1]}='{$_POST['valor']}' WHERE id='{$campos[0]}' " );
?>
en mi caso tengo una tabla con la siguiente estructura
Código SQL:
Ver originalmysql> SELECT * FROM a
-> ;
+----+-------+---------+
| id | lote | descrip |
+----+-------+---------+
| 1 | aaasd | a |
| 2 | casda | casd |
| 3 | f | fasdas |
+----+-------+---------+
3 ROWS IN SET (0.00 sec)
si lo acoplas a tu tabla funcionara adecuadamente, lo de que campos puede modificar cada usuario, eso dependerá de una configuración por usuario.
espero te sirva
Saludos
IMPORTANTE: nunca genero el código para la solución, solo en este caso realice una excepción, ya que no tengo nada que hacer.