
Llevado por la emoción del momento me he equivocado a la hora de decir que mi tema está solucionado y luego de varias pruebas me he dado cuenta de que aun no he encontrado solución a mi problema.
Resulta que ahora solo me modifica el primer conjunto de resultados que recibo y sabiendo que el ciclo foreach si recoje todos los resultados pues ya he probado eso.
He aqui mi script:
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 = ? AND codigo = ?";
$mysqli = $this->abrir_conexion();
$stmt = $mysqli->prepare($query);
if (!$stmt) {
echo "Falló la preparación: (" . $mysqli->errno . ") " . $mysqli->error;
}
if(!$stmt->bind_param("sssss", $serialx, $observaciones_hx, $tipo_nombrex,$id_hardwarex,$codigox)) {
echo "Falló la vinculación de parámetros: (" . $mysqli->errno . ") " . $mysqli->error;
}
foreach ($codigo as $n => $codigox) {
$observaciones_hx = $observaciones_h[$n];
$tipo_nombrex = $tipo_nombre[$n];
$id_hardwarex = $id_hardware[$n];
$serialx = $serial[$n];
if (!$stmt->execute()) {
echo "Falló la ejecución: (" . $mysqli->errno . ") " . $mysqli->error;
}
else {
return true;
}
}
}
$stmt->close();
}
Creo que el problema puede estar reflejado en la sentencia mysql, pero no estoy seguro. Lo cierto es que solo me modifica el primer campo y los otros no.
Recuerden lo que antes señale sobre que el id_hardware me indica a que componente pertenecen las caracteristicas : serial, observaciones_h y tipo_nombre mientras el codigo engloba todos los componentes en general. Es un mismo codigo para todas las caracteristicas pero cada una de ella tiene id_hardware diferentes, esto podria ayudar a entender mejor mi problema fijense en la sentencia mysql, ¿Es la adecuada para el caso?
Agradecería a algún moderador pudiera cambiar mi tema y quitarle el marcado de solucionado para que otros usuarios puedan seguir comentando. Es un proyecto de la universidad que realmente me tiene casi loco