Ver Mensaje Individual
  #12 (permalink)  
Antiguo 01/10/2013, 15:05
Avatar de AnGuisi
AnGuisi
 
Fecha de Ingreso: julio-2013
Ubicación: San Felipe - Yaracuy
Mensajes: 122
Antigüedad: 10 años, 9 meses
Puntos: 2
Respuesta: Update Mysql en PHP

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 original
  1. public function editar($datos = array()) {
  2.          
  3.          
  4.           extract($datos);
  5.            
  6.           if ($codigo != '') {
  7.               $query = "UPDATE `soptecvnzla`.`caracteristicas_hardware` SET serial = ?, observaciones_h = ?, tipo_nombre = ? WHERE id_hardware = ? AND codigo = ?";
  8.              
  9.               $mysqli = $this->abrir_conexion();
  10.               $stmt = $mysqli->prepare($query);
  11.               if (!$stmt) {
  12.               echo "Falló la preparación: (" . $mysqli->errno . ") " . $mysqli->error;
  13.               }
  14.              
  15.               if(!$stmt->bind_param("sssss", $serialx, $observaciones_hx, $tipo_nombrex,$id_hardwarex,$codigox)) {
  16.                    echo "Falló la vinculación de parámetros: (" . $mysqli->errno . ") " . $mysqli->error;
  17.                                                                                                    }
  18.              
  19. foreach ($codigo as $n => $codigox) {
  20.       $observaciones_hx = $observaciones_h[$n];
  21.       $tipo_nombrex = $tipo_nombre[$n];
  22.       $id_hardwarex = $id_hardware[$n];
  23.       $serialx = $serial[$n];
  24.      
  25.  
  26.       if (!$stmt->execute()) {
  27.     echo "Falló la ejecución: (" . $mysqli->errno . ") " . $mysqli->error;
  28. }
  29. else {
  30.     return true;
  31.      }
  32. }
  33.  
  34.      
  35.           }
  36.           $stmt->close();
  37.       }

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

Última edición por AnGuisi; 01/10/2013 a las 22:54