Как вывести значения из Mysql node js?
В данном коде я получаю данные cash из таблицы определенного пользователя
let login ='marikas'; let login2 ='tym'; let login3 ='bars'; async function main(){ let sql1 = `SELECT cash FROM clients WHERE login = '${login}'`; const queryToDB1 = await conn.query(sql1, (err, result) => { if (err){ return console.log('ошибка:' + err.message); } if (!result[0]) { console.log('Comments not found!') } else { console.log(result[0]); // вывожу данные cash } }); } main(); |
let login ='marikas'; let login2 ='tym'; let login3 ='bars'; async function main(){ let sql1 = `SELECT cash FROM clients WHERE login = '${login}'`; const queryToDB1 = await conn.query(sql1, (err, result) => { if (err){ return console.log('ошибка:' + err.message); } if (!result[0]) { console.log('Comments not found!') } else { console.log(result[0]); // вывожу данные cash } }); } main();
Ранее на php я использовал mysqli_fetch_array
Мне нужно из таблицы вывести пользователей таким образом
// имеем несколько логинов на странице let login ='marikas'; let login2 ='tym'; let login3 ='bars'; // получим данные cash из бд для каждого пользователя ///..........SELECT ..... FROM clients ??? let marikas = // данные cash из бд let tym= // данные cash из бд let bars= // данные cash из бд |
// имеем несколько логинов на странице let login ='marikas'; let login2 ='tym'; let login3 ='bars'; // получим данные cash из бд для каждого пользователя ///..........SELECT ..... FROM clients ??? let marikas = // данные cash из бд let tym= // данные cash из бд let bars= // данные cash из бд
Дополнительно:
так и в чём проблема-то? вот у вас в result данные
на php я делал mysql_fetch_array один раз подключаемся
выводим
данные логина
данные логина
и т.д
Ответы:
https://stackoverflow.com/questions/33957252/node-...
- Это я кстати смотрел, но запутался как применить к моему
- Sun2790, пытайся пока не получится, там всё максимально просто.
Ранее на php я использовал mysqli_fetch_array
С вашим запросом и на PHP вернётся одна строка.
А вообще, тут весь код переписывать надо. Вы зачем-то используете await, хотя функция у вас в callback-стиле, используете прямую подстановку вместо подготовленного выражения.
const mysql = require('mysql2/promise'); const conn = await mysql.createConnection({ ... }); const logins = ['marikas', 'tym', 'bars']; async function main() { const result = await conn.execute( 'SELECT login, cash FROM clients WHERE login in (?)', [logins], ); for ([login, cash] of result) { console.log(login, cash); } } |
const mysql = require('mysql2/promise'); const conn = await mysql.createConnection({ ... }); const logins = ['marikas', 'tym', 'bars']; async function main() { const result = await conn.execute( 'SELECT login, cash FROM clients WHERE login in (?)', [logins], ); for ([login, cash] of result) { console.log(login, cash); } }
Либо
const mysql = require('mysql2'); const conn = mysql.createConnection({ ... }); const logins = ['marikas', 'tym', 'bars']; function main() { conn.execute( 'SELECT login, cash FROM clients WHERE login in (?)', [logins], (err, result) => { if (err) { throw new Error(err); } for ([login, cash] of result) { console.log(login, cash); } }, ); } |
const mysql = require('mysql2'); const conn = mysql.createConnection({ ... }); const logins = ['marikas', 'tym', 'bars']; function main() { conn.execute( 'SELECT login, cash FROM clients WHERE login in (?)', [logins], (err, result) => { if (err) { throw new Error(err); } for ([login, cash] of result) { console.log(login, cash); } }, ); }
- Спасибо. Как вывести сразу все три логина в этом запросе? Я так понимаю , второй вариант лучше? Стоит ли в таком варианте использовать асинхронный запрос. Я только перехожу на js.
- Sun2790, Что значит "сразу все три"?
Оба варианта работают асинхронно, просто второй вариант использует callback-метод, а первый - более новый await (синтаксический сахар над Promise).
Начинать изучать JS как второй язык программирования лучше как раз с асинхронщины - понятий основного цикла ядра JS, очереди событий, микро- и макрозадач. - Rsa97, Что значит "сразу все три"? -- cash для логина marikas ,cash для логина tym,cash для логина bars
- Sun2790, Так оно и выводится в цикле. Вы не знаете SQL? И решили изучить всё и разом? Так, конечно, можно, но времени уйдёт на порядок больше, чем при последовательном изучении материала. Сначала освойте что-то одно, либо SQL, либо JS.
- Rsa97, Спасибо. Это понятно что в цикле выводится. Я имел в виду.
let login1 = marikas; let cash1 = 12345; // его логин и его cash
let login2 = tym; let cash2 = 6789; // его логин и его cash - Sun2790, А для чего нужен такой изврат?
cashes = {}; for ([login, cash] of result) { cashes[login] = cash; }
cashes = {}; for ([login, cash] of result) { cashes[login] = cash; }
- Rsa97, Просто получить cash пользователей.
Например список.
Делаем запрос.
Получаем:
У этого пользователя такой cash
У этого такой - Sun2790, Для списков надо работать не с отдельными значениями, а с массивами и объектами.
- Rsa97, То есть, я из базы вывожу весь массив пользователей, потом ищу для каждого его cash?
- Sun2790, Получаете данные для всего списка пользователей, который вам необходим, приводите их в удобную для себя форму, например в Object или Map, и работаете с ними.
- Rsa97, Спасибо. Буду пробовать!
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Для того чтобы вывести значения из MySQL в Node.js, необходимо использовать модуль mysql2 для подключения к базе данных и выполнения запросов. Ниже приведен пример кода, демонстрирующий как это можно сделать:
```php
// Подключение к базе данных const mysql = require('mysql2'); const connection = mysql.createConnection({ host: 'localhost', user: 'root', password: 'password', database: 'mydatabase' }); // Выполнение запроса connection.query( 'SELECT * FROM mytable', function(err, results, fields) { if (err) { console.log(err.message); return; } // Вывод результатов запроса console.log(results); } ); // Закрытие соединения с базой данных connection.end();
```
В данном примере мы используем метод `query` для выполнения запроса к базе данных, где указываем SQL-запрос для выборки всех данных из таблицы `mytable`. После выполнения запроса, результаты будут доступны в коллбэке в виде объекта `results`, который можно использовать для дальнейшей обработки или отображения.
Не забудьте заменить значения `host`, `user`, `password`, `database` на соответствующие значения вашей базы данных. Также обратите внимание, что соединение с базой данных должно быть закрыто после выполнения всех запросов.
Надеюсь, этот пример поможет вам успешно вывести значения из MySQL в Node.js. Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать их.