Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/06/2013, 10:45
SeaPirates
 
Fecha de Ingreso: enero-2009
Ubicación: España
Mensajes: 786
Antigüedad: 15 años, 9 meses
Puntos: 9
¿Porqué siempre me coge la misma id?

Hola, estoy intentando hacer que por cada zona que existe inserte todos los objetos que hay si no existen ya. El problema que tengo es que hay 2 objetos y teóticamente tendría que insertar 20 de cada, y me inserta en total 40, hasta ahí bien. Pero me los inserta todos con la misma id, la última. No entiendo porqué sucede, he llegado a pensar que el bucle for se ejecuta antes que el do que tiene dentro..

Código Javascript:
Ver original
  1. client.query("SELECT id FROM world_areas", function(errors, rows) {
  2.     for(var i = 0;i < rows.length; i++) {
  3.         var map = rows[i].id;
  4.    
  5.         client.query('SELECT * FROM objects WHERE regeneration = "1"', function(errors, rows) {
  6.            
  7.             for(var e = 0;e < rows.length; e++) {
  8.            
  9.                 var max_objects = rows[e].max_objects;
  10.                 var name = rows[e].name;
  11.                 var ammount = rows[e].ammount;
  12.                 var type = rows[e].id;
  13.                 client.query('SELECT id FROM world_objects WHERE type = "' + type + '" AND map = "' + map + '"', function(errors, rows) {
  14.                     var dif = parseInt(max_objects)-rows.length;
  15.                     var a = 0;
  16.                     do {
  17.                         var x = 1100 + Math.floor(Math.random() * 3600);
  18.                         var y = 1100 + Math.floor(Math.random() * 3600);
  19.                         client.query('INSERT INTO world_objects (name, type, map, x, y) VALUES ("' + name + '", "' + type + '", "' + map + '", "' + x + '", "' + y + '")');
  20.                         a++;
  21.                         console.log('OBJETO[' + a + '] => ' + type );
  22.                     }while(a < dif);
  23.                            
  24.                 });
  25.                
  26.             }
  27.         });
  28.    
  29.    
  30.        
  31.         console.log(' [' + date + '] -> GENERADOS OBJETOS EN EL MAPA ' + rows[0].id);
  32.     }
  33. });

¿Alguna idea?