Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/04/2015, 19:26
efren315
 
Fecha de Ingreso: septiembre-2013
Mensajes: 32
Antigüedad: 10 años, 7 meses
Puntos: 0
ejecutar multiples updates en una sola consulta

Hola amigos, escribo por aqui en busca de ayuda, y si alguien me puede ayudar se que sn ustedes.

tengo el siguiente ejercicio en problema ya que estoy intentando realizar un update multiple en una sola.

estoy enviando por medio de ajax las variables estas variables contienen los ID de la tabla mysql con esos ID hago un while para obtner ciertos campos los cuales llevo en un array. pero a la misma ves quiero hacer un update a un campo en la tabla donde el ID sea los ID que recoja la variable enviada en ajax.

logro hacer el update, pero me lo hace la cantidad igual al numero de ID recogidos me explico estoy intentando hacer esto.

tengo lo siguiente:
Código PHP:

Tabla 
oferts
campo 
ID
campo
rest es un numero ejemplo 200 )

ejecuto :

include(
'config.php');
$jsondata = array();
//$auctions=$_POST['clave']; // esta la variable que recibo con ajax la cual contiene esto:

$auctions '3&4&5&6&'// son los ID , actualmente recibo 4 pero puede variar ser mas o ser menos.


$extraer=explode("&"$auctions);
$arr =($extraer);

$id $arr;

if( 
is_array($id) ) {
        
$id array_map('intval'$id);
        
$querywhere "WHERE `ID` IN (" implode','$id ) . ")";
    } else {
        
$id intval($id);
        
$querywhere "WHERE `ID` = " $id;
    }






$very2 mysql_query"SELECT * FROM `oferts` " $querywhere ) or die(mysql_error());    
$result mysql_num_rows($very2);
while (
$obj mysql_fetch_object($very2)) {
    
$arr2 = array('ID' => $obj->id,
                   
'T' => $obj->time
                   
'R' => $obj->rest,
                   
'OF' => $obj->ofertante,
                   

        );



    
      
$restar="UPDATE oferts SET rest = rest - '1' '"$querywhere;
      
mysql_query($restar,$con) or die('Error. '.mysql_error());

// pero resulta que en ves de restarme uno me resta es la cantidad de id recibidos, 
//ejemplo actualemnte recibo 4 ID (3,4,5,6) en la variable que envia ajax y este UPDATE me resta 4
 //en vez de uno, si recibo 6 ID en la variable me resta 6. y no entiendo como hacer que solo
 //me reste 1 en cada uno de los ID recibidos.
    

   
$jsondata[]['A']=$arr2;
    
    
}


echo 
json_encode($jsondata,JSON_FORCE_OBJECT);
exit(); 
espero puedan ayudarme amigos.