如何使用sql和javascript连接数据库表并使用首页上的第三个表?
我在数据库中有3个表:如何使用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
plres\u pl\u id
中的玩家id和plres\u resu id
+中的资源id,玩家将从寄存器中开始的资源的plres\u数量
,然后做一个计时器,这样我可以在登录时更新资源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(结果);
});
}
});
});