Почему данные добавляются в одну и ту же таблицу дважды? - PullRequest
1 голос
/ 25 апреля 2020

У меня есть база данных, в которой есть таблица очередей с именами и идентификаторами очередей, а также две таблицы очередей (очередь 1 и очередь 2). теперь у меня есть функция, которая должна добавлять ордера в правильную очередь, но она только добавляет во вторую очередь, и я уже использую for для l oop, чтобы изменить очередь, которая должна использоваться.

вот код

for (int i = 0; i < tmpQueuesIds.length; i++){
      await http.post(GlobalState.ADDTOQUEUE, body: {
        'queueId': tmpQueuesIds[i].toString(),
        'timeinmin': tmpTimes[tmpQueuesIds[i]].toString(),
        'resId': _globalState.get('resId').toString(),
        'userId': userId.toString(),
      });
      print("QueueId: " + tmpQueuesIds[i].toString());
      print("OrderTime: " + tmpTimes[tmpQueuesIds[i]].toString());
      Future.delayed(Duration(milliseconds: 500));
    }

и вот вывод:

I/flutter ( 3238): QueueId: 1
I/flutter ( 3238): OrderTime: 6
I/flutter ( 3238): QueueId: 2
I/flutter ( 3238): OrderTime: 10

как вы видите, у меня есть две очереди и значения меняются, но он вставляет значение 10 дважды в Для очереди 2 следует вставить значение 6 в очередь 1 и значение 10 в очередь 2.

, а вот код API

try {
    router.post('/', (req, res, next) => {

        queueId = req.body.queueId;
        resId = req.body.resId;
        timeinmin = req.body.timeinmin;
        userId = req.body.userId;
        var orderId;

        sqlQuery = `SELECT id FROM orders where userid = ${userId} and isdone = false`;

        con.query(sqlQuery, (err, rows) => {
            try {
                lastIndex = rows['rows'].length - 1;
                orderId = rows['rows'][lastIndex]['id'];
            } catch{
                console.log('something wrong with setting orderId or lastIndex value in addToQueue.js');
            }

            if (!err) {
                sqlQuery2 = `SELECT name FROM queues where id = ${queueId}`;
                try {
                    con.query(sqlQuery2, function (err, rows) {
                        try {
                            queueName = rows['rows'][0]['name'];
                        } catch{
                            console.log('something wrong with setting queueName value in addToQueue.js');

                        }

                        if (!err) {

                            sqlQuery2 = `INSERT INTO ${queueName} (timeinmin, resid, orderid) VALUES(${timeinmin}, ${resId}, ${orderId})`;

                            try {
                                con.query(sqlQuery2, function (err, rows) {

                                    if (!err) {
                                        res.sendStatus(201);
                                        console.log('added to queue');
                                    } else {
                                        console.error("Failed to add to queue");
                                        console.log(err);
                                        res.sendStatus(202);
                                    }
                                });
                            } catch{
                                console.log('Something went down.');
                            }
                        } else {
                            console.error("Failure");
                            console.log(err);
                            res.sendStatus(202);
                        }
                    });
                } catch{
                    console.log('Something went down.');
                }
            } else {
                console.log(err);
                res.sendStatus(202);
            }
        })
    });
} catch{
    console.log('Error');
}

помогите мне, пожалуйста, спасибо.

1 Ответ

1 голос
/ 25 апреля 2020

Я не могу найти никаких проблем с вашим кодом.

Мой совет: попробуйте перезапустить ваши IDE, и, если проблема не устранена, попробуйте перезагрузить весь компьютер.

...