Не правильный цикл
function get() { ts.send("clientlist", (err, response) => { if (err) { console.error('failed:', err); } let list = response; for (let i = 0; i < list.length; i++) { let client = list[i].clid; ts.send("info", { clid: client }, (err, response) => { mysql.query(`SELECT id, name FROM users WHERE id = '${response.id}'`, (err, rows, fields) => { console.log(rows.length) }); }); } }); } В БД 4 записи! На выходе я имею: 3 1 3 3 3 Как мне получить результат 1 раз, но в цикле эта функция? |
Не знаю я Node, но так насиловать базу, это запредельно. Здесь не должно быть цикла вообще. Нужно подготовить данные для запроса, обязательно отфильтровав их, как массив id, который подставить в запрос, объединив его элементы через запятую id_array.join(','):
SELECT id, name FROM users WHERE id IN(id_string) В кавычки числовые значения заключать не обязательно. А уже результат запроса rows, это будет массив объектов и rows.length, это количество возвращенных записей. И вот тут нужен цикл для rows чтобы получить данные из каждой записи. |
Часовой пояс GMT +3, время: 09:12. |