Error while actualizar campos en tabla ayuda

$sql2= "SELECT

 precio,
 idproducto,
 descripcion
 from 
 lineaspresupuestos
 WHERE lineaspresupuestos.idpresupuesto=[gidpresupuesto]";

//macro de scriptcase que ejecuta el select de arriba
sc_select(ds, "$sql2"); 

//aqui comienza el while
if ({ds} === false)
{
echo “Access error. Message =”. {ds};
}
else
{
while (!{ds}->EOF)
{
$precio = {ds}->fields[0]*{tasa};

$update=“update lineaspresupuestos set precio=$precio where idpresupuesto=.[gidpresupuesto]”;
//macro de scriptcase para ejecutar el mysql
sc_exec_sql ($update);
{ds}->MoveNext(); //avanza al siguiente registro
}
{ds}->Close(); //fin del ciclo
}

el problema es que me toma el ultimo valor del array y ese es el que me pone en todos los precios

lo que quiero es que el valor $precio me lo actualice segun el idproducto

ejemplo

idproducto 1
precio 5
descripcion sello

idproducto 2
precio 3
descripcion goma

tasa=2
entonces , lo que hace ahora es el $precio=5 de idproducto 1 lo multiplica por la tasa=2 resultado 10

y con el siguiente igual pero se queda con el valor del ultima linea que seria precio 3 del idproducto 2 total = 6

lo que yo quiero es que en cada producto me actualice en la tabla el valor correspondiente,

Lo que yo haria seria mas o menos asi:

$sql2= "SELECT
  ...
 precio,
 idproducto,
 descripcion
 from 
 lineaspresupuestos
 WHERE lineaspresupuestos.idpresupuesto=".[gidpresupuesto];

//macro de scriptcase que ejecuta el select de arriba
sc_select(ds, $sql2);
```

Hola no veo tu respuesta, creo que salio incompleta

Yo solo puse la parte del comando SELECT… lo restante es la misma cosa que hiciste…

es que el select esta bien el problema es en el ciclo en el update del mysql, que no me actualiza cada registro que es lo que quiero, me toma el ultimo valor del array y me actualiza con ese valor

TE FALTA USA EL AND EN EL UPDATE:
while (!{ds}->EOF)
{
$precio = {ds}->fields[0]*{tasa};
$idprod = {ds}->fields[1];

$update=“update lineaspresupuestos set precio=$precio where idpresupuesto=.[gidpresupuesto] and idproducto = ”.$idprod;
//macro de scriptcase para ejecutar el mysql
sc_exec_sql ($update);
{ds}->MoveNext(); //avanza al siguiente registro
}

Creo que te falta el sc_commit_trans() en esta parte:

$update=“update lineaspresupuestos set precio=$precio where idpresupuesto=.[gidpresupuesto]”;
//macro de scriptcase para ejecutar el mysql
sc_exec_sql ($update);
sc_commit_trans();

funcionooooooo al fin tengo 1 mes dandole vueltas a esto! muchas gracias!!! muuchas gracias que felicidad! gracias totales!!