PHP - Sentencia UPDATE no se ejecuta correctamente

 
Vista:

Sentencia UPDATE no se ejecuta correctamente

Publicado por MinaHG (3 intervenciones) el 04/05/2018 17:51:05
Que tal..

He estado analizando el problema pero no he encontrado el motivo de porqué no se ejecuta de la manera correcta. Tengo un ciclo que recorre todas las filas que tengo para asignarle un valos al campo de costo, Se calcula el costo y lo calcula bien, pero cuando quiero guardar el campo, se guarda con un valor diferente. Espero puedan ayudarme, a continuacion dejo el codigo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
$llamadas=$mysqli->query("SELECT * FROM llamadas WHERE disposition='ANSWERED' AND tipoLlamada!='LLAMADA INVALIDA' ORDER BY src");
 
while($filas = $llamadas -> fetch_object())
{
    $src=$filas->src;
    $dst=$filas->dst;
    $idllamada=$filas->uniqueid;
    $duracion=ceil ($filas->billsec/60);
    $cliente=$mysqli->query("SELECT * FROM clientes WHERE userField=('$src')");
    if ($cliente->num_rows>0) {
        $datosCliente = $cliente -> fetch_object();
        $proveedor=$datosCliente->idProveedor;
        $userField=$datosCliente->userField;
        $tipollamada=$filas->tipoLlamada;
        $tarifas=$mysqli->query("SELECT * FROM proveedores WHERE idProveedor=('$proveedor')");
        $tarifa = $tarifas -> fetch_object();
        $nombre=$tarifa->nombreProveedor;
        $tLocal=$tarifa->tLocal;
        $tLocalCell=$tarifa->tLocalCell;
        $tUsaCan=$tarifa->tUsaCan;
        $tUsaCanCell=$tarifa->tUsaCanCell;
        $tInter=$tarifa->tInter;
        $tInterCell=$tarifa->tInterCell;
        echo $idllamada."<br>"."Destino: ".$dst ."<br> "."Proveedor:". $nombre. $proveedor."<br>". $duracion." min". "<br>";
        if($tipollamada=='LOCALCELL') {
 
            $costoTotal=$duracion*$tLocalCell;
            $floatCosto = floatval($costoTotal);
            $update=$mysqli->query("UPDATE llamadas SET costoPro='$floatCosto' WHERE src='$userField'");
            echo "Llamada LOCAL A CELULAR con costo total de $ ".$floatCosto."<br>"."---------------------------------------------------"."<br>";
        }
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
Imágen de perfil de Alejandro
Val: 1.634
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Sentencia UPDATE no se ejecuta correctamente

Publicado por Alejandro (839 intervenciones) el 04/05/2018 19:16:53
  • Alejandro se encuentra ahora conectado en el
  • chat de PHP
Da un ejemplo de lo que debio haber guardado y lo que guardo

Intenta imprimir el update
1
2
3
4
$query = "UPDATE llamadas SET costoPro='$floatCosto' WHERE src='$userField'"
$update=$mysqli->query($query);
echo $query."<br />";
echo "Llamada LOCAL A CELULAR con costo total de $ ".$floatCosto."<br>"."---------------------------------------------------"."<br>";

¿Que tipo es el campo costoPro?
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

Sentencia UPDATE no se ejecuta correctamente

Publicado por MinaHG (3 intervenciones) el 04/05/2018 19:45:10
Hola
Pasa que el valor es el mismo pero cuando lo consulto en la base de datos el costoPro que es el que se modifica no coincide, lo pone cx|omo 0.25


Valor ConsultaUPDATE llamadas SET costoPro='0.5' WHERE src='7906632541'
1521050590.145
Destino: 0475542447859
Proveedor:0001
2 min
Llamada LOCAL A CELULAR con costo total de $ 0.5
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

Sentencia UPDATE no se ejecuta correctamente

Publicado por MinaHG (3 intervenciones) el 04/05/2018 20:11:53
Hola de nuevo... Era más bien un problema de lógica, ya que el WHERE lo estaba aplicando con una variable que no era unico, y lo que hacía era cambiarlo y cambiarlo. Por eso ponía el mismo valor
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