Ahora si lo he solucionado haciendolo de esta forma:
Código PHP:
Ver originalpublic function editar
($datos = array()) {
if ($codigo != '') {
$query = "UPDATE `soptecvnzla`.`caracteristicas_hardware` SET serial = ?, observaciones_h = ?, tipo_nombre = ? WHERE id_hardware = ?";
$mysqli = $this->abrir_conexion();
$stmt = $mysqli->prepare($query);
if (!$stmt) {
echo "Falló la preparación: (" . $mysqli->errno . ") " . $mysqli->error;
}
if(!$stmt->bind_param("ssss", $serialx, $observaciones_hx, $tipo_nombrex,$id_hardwarex)) {
echo "Falló la vinculación de parámetros: (" . $mysqli->errno . ") " . $mysqli->error;
}
foreach ($id_hardware as $n => $id_hardwarex) {
$observaciones_hx = $observaciones_h[$n];
$tipo_nombrex = $tipo_nombre[$n];
$serialx = $serial[$n];
echo $n;
echo $id_hardwarex;
$stmt->execute();
}
$stmt->close();
}
}
El problema al parecer estaba en la parte del script anterior:
Código PHP:
if (!$stmt->execute()) {
echo "Falló la ejecución: (" . $mysqli->errno . ") " . $mysqli->error;
}
else {
return true;
}
Pero no entiendo el por que eso afectaba y solo me hacia update el primer conjunto de datos.