@kotyapov

Как не показывать пустые массивы?

у меня есть код
function user(robot, mess, args) {

  name = args[1]
  let raspis = "";

  connection.query(`SELECT * FROM \`raspis\` WHERE \`ryavka\` LIKE '%${name}%'`, (err, results, fields) => {

      var i
      for (i = 0; i < 4; i++) {
        
         
        raspis = raspis + "`ID " + i + "`: " + " Data:" + results[i].Data + " TIME:" + results[i].time + " Name:" + results[i].rname + "\n";

      }
    mess.channel.send({ embeds: [{
        color: 3447003,
        author: {
          name: "",
          icon_url: ""
        },
        thumbnail: {
          url: ""
        },
        image: {
          url: ""
        },
        title: "Явка",
        url: "",
        description: `**${name} \n ${raspis}**
        `,
        fields: [{
          name: "",
          value: "",
          inline: false
        },
        {
          name: "",
          value: "",
          inline: true
        },
        {
          name: "\u200b",
          value:"\u200b"
        }],
        timestamp: new Date(),
        footer: {
          icon_url: "",
          text: ""
        }
      }]});
    })
};

65b1891ec0400347088700.png
В данном случае <@1197265177863794688> нету во второй строке и мне надо что бы когда я прописывал user и ник(в дискорде он имеет форму @Ник, а в таблице mysql <@id>) мне выдавались только те строки где в столбце ryavka есть данный <@1197265177863794688>, а где его нету не выдавало то строку, где <@1197265177863794688> нету
Пытался сделать с этим кодом, выдает ошибку 65b18a380354c957027628.png
Как исправить?
  • Вопрос задан
  • 133 просмотра
Пригласить эксперта
Ответы на вопрос 1
ThunderCat
@ThunderCat Куратор тега MySQL
{PHP, MySql, HTML, JS, CSS} developer
1) сделайте нормальные имена полям, что за rid, rname, ryavka, тут с большой буквы, там с маленькой... кроме того что половина полей транслитерацией кривой, так еще и префикс зачем то присобачили... С переменными та же фигня.
2) База должна соответствовать 3 нормальной форме, соответственно 2 значения в поле вашей рявки быть не должно, это должны быть 2 отдельных поля (или вообще внешняя таблица, если там много значений предполагается).
3) Соответственно в запросе нужно будет дать дополнительное условие по наличию второго поля, тогда ответ будет такой как надо.
4) В вашем случае предполагаю что ответ вообще не приходит, или приходит пустой, так как при запросе из пустого результата в первой же итерации цикла все упадет как раз с описанной ошибкой.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы