如何使用sql和javascript连接数据库表并使用首页上的第三个表?

如何使用sql和javascript连接数据库表并使用首页上的第三个表?,javascript,mysql,server,client,Javascript,Mysql,Server,Client,我在数据库中有3个表: 玩家:关于玩家的信息 资源:游戏拥有的所有资源 playerResources:在这里,我要说的是plres\u pl\u id中的玩家id和plres\u resu id+中的资源id,玩家将从寄存器中开始的资源的plres\u数量,然后做一个计时器,这样我可以在登录时更新资源 我不知道如何在表之间进行连接,我用gold进行了更新,但我只需要使用player表,现在我需要对其他资源进行同样的操作 create table player ( pl_id int not n

我在数据库中有3个表:

  • 玩家:关于玩家的信息
  • 资源:游戏拥有的所有资源
  • playerResources:在这里,我要说的是
    plres\u pl\u id
    中的玩家id和
    plres\u resu id
    +中的资源id,玩家将从寄存器中开始的资源的
    plres\u数量
    ,然后做一个计时器,这样我可以在登录时更新资源
  • 我不知道如何在表之间进行连接,我用gold进行了更新,但我只需要使用player表,现在我需要对其他资源进行同样的操作

    create table player ( pl_id int not null auto_increment,
    
                        pl_name varchar(60) not null,                   
            
                        pl_pass varchar(60),    
    
                        pl_gold int not null,
                        
                        primary key (pl_id)
                    );
    
    create table resources ( res_id int not null auto_increment,
    
                        res_name varchar(60) not null,                  
            
                        res_description varchar(60),                    
    
                        res_value int not null,
                        
                        primary key (res_id)
                    );
    
    create table playerResources (plres_id int not null auto_increment,
                        
                        plres_quantity int not null,                        
    
                        plres_res_id int not null,  
    
                        plres_pl_id int not null,                       
    
                        primary key (plres_id)
    
                    );
    
    以及资源的插入:

    insert into resources (res_name, res_description, res_value) values ('wood','Lumber from your local mill.', 2);
        
    insert into resources (res_name, res_description, res_value) values ('leather','Leather from your local tannery.', 2);
        
    insert into resources (res_name, res_description, res_value) values ('iron','Iron from your local mine.', 2);
    
    FrontPage.js:

    function do_Login(){
    
        let username=nameInput.value();
        let password=passInput.value();
    
    
        let player = {
            username:username,
            password:password,
        }
    
    
        //Do Login
        if (loginScreenActive){
    
            httpPost('/login','json',player,(dataReceived)=>{
    
                playerid = dataReceived[0].pl_id;
    
                remove_Login();
    
                loadJSON('/getGold/'+playerid,(dataReceived)=>{
    
                    gold=dataReceived[0].pl_gold;
    
                });
    
               
        //Do Register
        }else{
            httpPost('/register','json',player,(dataReceived)=>{
                
                playerid=dataReceived[0].pl_id;
    
                remove_Login();
    
                loadJSON('/getGold/'+playerid,(dataReceived)=>{
    
                    gold=dataReceived[0].pl_gold;
    
                });
          }
    }
    
    setInterval(function(){
        loadJSON('/increaseGold/'+playerid,(dataReceived)=>{
            gold=dataReceived[0].pl_gold
        })
    },10000)
    
    Server.js:

    app.get('/increaseGold/:playerid',(req,res)=>{
    
        let playerid=req.params.playerid;
    
        let sql ="UPDATE Player SET pl_gold = pl_gold + 10 WHERE pl_id='" +playerid+ "'"
    
        db.query(sql,(err,result)=>{
            if(err) throw err;
    
            let sql ="SELECT pl_gold FROM Player WHERE pl_id='"+playerid+"'";
    
            db.query(sql,(err,result)=>{
                if(err) throw err;
            
                res.send(result);
            });
        });
    });
    
    app.post('/register',(req,res)=>{
    
    let username = req.body.username;
    let password = req.body.password;
    let gold = 1000;
    
    let sql = "SELECT * FROM Player WHERE pl_name='"+username+"'";
    
            db.query(sql,(err,result)=>{
            if(err) throw err;
    
            //no player with that name
            if(result.length<1){
    
                let sql = "INSERT INTO Player (pl_name,pl_pass,pl_gold) VALUES ('"+username+"','"+password+"','"+gold+"')"; 
                db.query(sql,(err,result)=>{
                if(err) throw err;
    
    
                    //if affected rows
                    let sql = "SELECT pl_id FROM Player WHERE pl_name='"+username+"' AND pl_pass='"+password+"'";
    
                    db.query(sql,(err,result)=>{
                        if(err) throw err;
    
                        console.log(result);
    
                        res.send(result);
                    });
                }); 
            }
        });
    });
    
    app.post('/login',(req,res)=>{
    
    let username = req.body.username;
    let password = req.body.password;
    
    let sql = "SELECT * FROM Player WHERE pl_name='"+username+"'";
    
        db.query(sql,(err,result)=>{
        if(err) throw err;
    
            console.log(result);
            if(result.length=1){
    
                let sql = "SELECT pl_id FROM Player WHERE pl_name='"+username+"' AND pl_pass='"+password+"'";
    
                db.query(sql,(err,result)=>{
                if(err) throw err;
    
                    console.log(result);
    
                    res.send(result);
                });
            }
        });
    });
    
    app.get('/increaseGold/:playerid',(req,res)=>{
    让playerid=req.params.playerid;
    让sql=“更新玩家集pl\u gold=pl\u gold+10,其中pl\u id=”+playerid+“”
    数据库查询(sql,(错误,结果)=>{
    如果(错误)抛出错误;
    让sql=“从pl_id=”+playerid+“”的玩家中选择pl_gold”;
    数据库查询(sql,(错误,结果)=>{
    如果(错误)抛出错误;
    res.send(结果);
    });
    });
    });
    应用程序发布(“/寄存器”,(请求,回复)=>{
    让username=req.body.username;
    让password=req.body.password;
    让黄金=1000;
    让sql=“从播放器中选择*,其中pl_name=”+username+”;
    数据库查询(sql,(错误,结果)=>{
    如果(错误)抛出错误;
    //没有那个名字的球员
    if(result.length{
    如果(错误)抛出错误;
    //如果受影响的行
    让sql=“从Player中选择pl_id,其中pl_name=”“+username+”,pl_pass=”“+password+””;
    数据库查询(sql,(错误,结果)=>{
    如果(错误)抛出错误;
    控制台日志(结果);
    res.send(结果);
    });
    }); 
    }
    });
    });
    app.post('/login',(req,res)=>{
    让username=req.body.username;
    让password=req.body.password;
    让sql=“从播放器中选择*,其中pl_name=”+username+”;
    数据库查询(sql,(错误,结果)=>{
    如果(错误)抛出错误;
    控制台日志(结果);
    如果(结果长度=1){
    让sql=“从Player中选择pl_id,其中pl_name=”“+username+”,pl_pass=”“+password+””;
    数据库查询(sql,(错误,结果)=>{
    如果(错误)抛出错误;
    控制台日志(结果);
    res.send(结果);
    });
    }
    });
    });