PHP - Actualizar varios valores mediante una consulta

 
Vista:
sin imagen de perfil

Actualizar varios valores mediante una consulta

Publicado por Jose Luis (2 intervenciones) el 21/11/2022 23:23:15
Hola este es mi error

General error: 1366 Incorrect decimal value: '["4.00","3.00"]' for column 'quantity_final' at row 1 (SQL: update `servis` set `quantity_final` = ["4.00","3.00"] where `id` in (1077, 1078))

Lo que hago una consulta a mis dos tablas y el dato que llamo en este caso es un número de cantidad para ambas, el dato que se muestra es el que tiene el mismo id para ambas tablas, lo que hago es que la nueva cantidad es Añadir a la cantidad actual y he terminado
IMAGEN: https://i.stack.imgur.com/5RfvB.png

Este es mi código con el que lo hice.
1
2
3
4
5
6
7
8
9
10
11
12
13
foreach($sum_quantity_add as $sum_add){
    $mont1[] = $sum_add->quantity;
    $quantity_actual = Servis::where('id',$id_servis)->get();
    foreach($quantity_actual as $quantity_act){
     $mont2[] = $quantity_act->quantity_final;
     $total = [];
     for($i = 0; $i < count($mont1); $i++) {
        $total[] = $mont1[$i] + $mont2[$i];
     }
  }
}
//DB::table('servicios')->whereIn('id',$id_servicios)->update(['quantity_final' => $total]);
dd($mont1,$mont2,$total);

pero el problema es cuando quiero hacer el update me sale el error
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Actualizar varios valores mediante una consulta

Publicado por Yamil Bracho (22 intervenciones) el 22/11/2022 01:54:35
Lo unico que veo del codigo es que $total es un arreglo y no un escalar(float/double, etc)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Kathyu
Val: 1.802
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Actualizar varios valores mediante una consulta

Publicado por Kathyu (905 intervenciones) el 22/11/2022 17:43:42
Tal como le dice Yamil, haga un var dump de $total[] que a la vista pareciera que tendría que ser solo $total

1
2
3
4
5
var_dump($total);
// or
echo "<pre>";
    print_r($total);
echo "</pre>";

Lo cual le tendría que retornar un dato numérico no un array
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar