За последние 24 часа нас посетили 22289 программистов и 1050 роботов. Сейчас ищет 591 программист ...

node.js не производит операции внутри цикла j

Тема в разделе "JavaScript и AJAX", создана пользователем riaron, 20 окт 2020.

  1. riaron

    riaron Активный пользователь

    С нами с:
    1 окт 2014
    Сообщения:
    247
    Симпатии:
    4
    node.js не производит операции внутри цикла
    Код (Javascript):
    1. app.get('/orders/:page', (req, res) => {
    2.     var connection = getMySQLConnection();
    3.     var smartphone=[];
    4.     var allsmartphone=[];
    5.     var smartphoneList=[];
    6.     var allprice=0;
    7.     var a;
    8.     var b;
    9.     var c;
    10.     var length;
    11.     var orderids;
    12.     var start;
    13.     var end;
    14.     var allprice;
    15.     start=(req.params.page-1)*10;
    16.     end=req.params.page*10;
    17.     var sql2='SELECT `orderid` FROM `orders` GROUP BY  `orderid`';
    18.     var sql1 ='SELECT `id`,`prod`,`name`,`photo`,`price`,`sale`,`remote_adr`,`quantity` FROM `orders` WHERE orderid=?';
    19.     connection.connect(function(err) {
    20.         if(err){
    21.             console.log(err);
    22.         }else{
    23.                 connection.query(sql2, [], function (err, resulta) {      
    24.             length=resulta.length;
    25.             if(start<0){start=0;}
    26.             if(end>(length-req.params.page*10)%10){end=length;}
    27.                 orderids=resulta;
    28.                 c=orderids.length;
    29.  
    30.     for(var j=0;j<c;j++) {
    31.         smartphone=[];
    32.             connection.query(sql1, [orderids[j]], function (err, results) {
    33.                 if(err){
    34.                     console.log(err);
    35.                 }else{
    36.                     for (var i = 0; i < results.length; i++) {
    37.                         // Create the object to save the data.
    38.                         b = results[i].price - results[i].price * results[i].sale / 100;
    39.                         a = b * results[i].quantity;
    40.                         allprice += a;
    41.                         var smart = {
    42.                             'id': results[i].id,
    43.                             'prod': results[i].prod,
    44.                             'name': results[i].name,
    45.                             'photo': results[i].photo,
    46.                             'sale': results[i].sale,
    47.                             'price': results[i].price,
    48.                             'tsale': b,
    49.                             'vsego': a,
    50.                             'quantity': results[i].quantity,
    51.                             'allprice': allprice,
    52.                         };
    53.                         smartphone.push(smart);
    54.                         console.log(smartphone);
    55.    
    56.                     }
    57.                 }
    58.             });
    59.        
    60.                     //allsmartphone[orderids[j]].push(smartphone);
    61.     }
    62.                    
    63.  
    64.             //res.render('orders', {"smartphoneList": smartphoneList,"allsmartphone": allsmartphone,'orderids':orderids});
    65.         });      
    66. }
    67. });
    68. });
     
  2. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.743
    Симпатии:
    1.319
    Адрес:
    Лень
    почему не производит операции внутри цикла ? что для выяснения причины делал ?

    Ты не убунту случайно ?
     
  3. riaron

    riaron Активный пользователь

    С нами с:
    1 окт 2014
    Сообщения:
    247
    Симпатии:
    4
    Вставил вне цикла console.log(orderids) и внутри, внутри ничего не выводит вне выводит
     
  4. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.743
    Симпатии:
    1.319
    Адрес:
    Лень
    сам же и нашел проблему.
     
  5. riaron

    riaron Активный пользователь

    С нами с:
    1 окт 2014
    Сообщения:
    247
    Симпатии:
    4
    console.log(results); выдает 2 пустых массива, не смотря на то что я проверил sql он правильный и в массивы товары с 2 orderid
     
  6. riaron

    riaron Активный пользователь

    С нами с:
    1 окт 2014
    Сообщения:
    247
    Симпатии:
    4
    * в таблице массивы товары у которых две разные orderid
     
  7. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.743
    Симпатии:
    1.319
    Адрес:
    Лень
  8. riaron

    riaron Активный пользователь

    С нами с:
    1 окт 2014
    Сообщения:
    247
    Симпатии:
    4
  9. riaron

    riaron Активный пользователь

    С нами с:
    1 окт 2014
    Сообщения:
    247
    Симпатии:
    4
     
  10. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.743
    Симпатии:
    1.319
    Адрес:
    Лень
    почему не выполняется ??
     
  11. riaron

    riaron Активный пользователь

    С нами с:
    1 окт 2014
    Сообщения:
    247
    Симпатии:
    4
  12. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.743
    Симпатии:
    1.319
    Адрес:
    Лень