0

I am trying to fetch results from my Database and process them as foreach. This is the specific code:

case "edit":{
                const editrow = new MessageActionRow();
                let query = `SELECT * FROM tickettypes WHERE guild_id = '${interaction.guild.id}'`
                let queryresult = []
                sql.query(query, function(err, result) {
                    if(err) throw err;
                    queryresult = result;
                });

                if(queryresult = null){
                    interaction.reply({content: 'Error: No tickettypes available', ephemeral: true})
                    return;
                }

                const editmenu = new MessageSelectMenu()
                    .setCustomId('editselect')
                    .setPlaceholder(' Select tickettype to edit')
                    .addOptions([
                        {
                            label: 'None',
                            description: 'Empty',
                            value: 'none',
                        },])
                queryresult.forEach(item => {
                    editmenu.addOptions([
                        {
                            label: item.name,
                            description: item.name,
                            emoji: item.emoji,
                            value: item.id,
                        },
                    ]) 
                });
                editrow.addComponents(editmenu);
                const editembed = new MessageEmbed()
                    .setColor('YELLOW')
                    .setTitle('Edit tickettype')
                    .setAuthor({ name: interaction.user.username})
                    .setDescription('Select the tickettype you want to edit')
                interaction.reply({ embeds: [editembed], components: [editrow], ephemeral: true})
            }
            break;

This is the Error i receive:

C:\Users\felax\Desktop\ArdoniaStudios\TicketsV2\Commands\System\tickettypes.js:112
                queryresult.forEach(item => {
                            ^

TypeError: Cannot read properties of null (reading 'forEach')
    at Object.execute (C:\Users\felax\Desktop\ArdoniaStudios\TicketsV2\Commands\System\tickettypes.js:112:29)
    at Object.execute (C:\Users\felax\Desktop\ArdoniaStudios\TicketsV2\Events\Interaction\interactionCreate.js:19:21)
    at Client.<anonymous> (C:\Users\felax\Desktop\ArdoniaStudios\TicketsV2\Structures\Handlers\Events.js:19:54)
    at Client.emit (node:events:520:28)
    at InteractionCreateAction.handle (C:\Users\felax\Desktop\ArdoniaStudios\TicketsV2\node_modules\discord.js\src\client\actions\InteractionCreate.js:74:12)
    at Object.module.exports [as INTERACTION_CREATE] (C:\Users\felax\Desktop\ArdoniaStudios\TicketsV2\node_modules\discord.js\src\client\websocket\handlers\INTERACTION_CREATE.js:4:36)
    at WebSocketManager.handlePacket (C:\Users\felax\Desktop\ArdoniaStudios\TicketsV2\node_modules\discord.js\src\client\websocket\WebSocketManager.js:351:31)
    at WebSocketShard.onPacket (C:\Users\felax\Desktop\ArdoniaStudios\TicketsV2\node_modules\discord.js\src\client\websocket\WebSocketShard.js:444:22)
    at WebSocketShard.onMessage (C:\Users\felax\Desktop\ArdoniaStudios\TicketsV2\node_modules\discord.js\src\client\websocket\WebSocketShard.js:301:10)
    at WebSocket.onMessage (C:\Users\felax\Desktop\ArdoniaStudios\TicketsV2\node_modules\ws\lib\event-target.js:199:18)
PS C:\Users\felax\Desktop\ArdoniaStudios\TicketsV2> 

Does anyone know how to solve this? I have also read something about others using Promises, but since i am quite new to Node (and JS) i don't really know what to do.

Thanks for the help guys

0 Answers0