10 글 보임 - 1 에서 10 까지 (총 10 중에서)
-
글쓴이글
-
2023년 2월 10일 21:10 #67878
이해욱참가자server.js app.post('/detail/:id',로그인했니, function(req, res){
var id= parseInt(req.params.id);
var sql= 'SELECT post.id, comment.ccon ,login.user_id ,comment.cnumber, comment.lastdate, login.id, post.numberid FROM comment INNER JOIN post ON comment.cnumber=post.id INNER JOIN login ON login.id=post.numberid'; connection.query(sql,function(err,topcis){ if(err) { console.log(err); res.status(500).send('Internal Server Error'); } else { var comm =req.body.comm; var lastdate = moment().format('YYYY-MM-DD hh:mm:ss'); var sql2 = 'INSERT INTO comment (ccon, cnumber, lastdate) VALUES(?, ?, ?)'; connection.query(sql2,[comm,id,lastdate],function(err,topcis2){ if(err) { console.log(err); res.status(500).send('Internal Server Error'); } else { res.redirect('/detail/'+id); } }) }
}) }) detail.ejs <% for(var i=0; i < posts.length; i++) { %> <div class="cbox"> <div class="writer" style="display: inline-block;"><%= posts[i].user_id %></div> <div class="lastdate" style="display: inline-block;"><%= posts[i].lastdate %></div> <div class="count"><%= posts[i].ccon %></div> </div> <% } %> list에서는 잘됐는데 detail 밑에 댓글에서는 안되네요 ㅠㅠ
2023년 2월 11일 12:45 #67922
이해욱참가자server.js
app.get('/detail/:id',로그인했니, function(요청, 응답){ var ppp=0; var id= parseInt(요청.params.id); var park= 요청.user[0].user_id; var park2=요청.user[0].gp; var admin='admin'; var kim = false; var sql = 'SELECT * FROM post INNER JOIN login ON login.id=post.numberid WHERE post.id=?'; connection.query(sql,[id],function(err,topcis){ if (topcis.length == 0) { if(topcis[0].user_id==park || park2==admin) { kim=true; } else if(topcis[0].user_id!=park) {
kim=false; } console.log(topcis);
응답.render('detail.ejs', {posts: topcis,came: id,kim: kim,ppp: ppp}); } else { var sqll = 'SELECT * FROM comment INNER JOIN post ON comment.cnumber=post.id INNER JOIN login ON login.id=post.numberid WHERE post.id=?'; connection.query(sqll,[id],function(err,kkk){ if (kkk.length == 0) { ppp=0; if(topcis[0].user_id==park || park2==admin) { kim=true; } else if(topcis[0].user_id!=park) { kim=false; } 응답.render('detail.ejs', {posts: topcis,came: id,kim: kim, ppp: ppp}); } else { var qqq= kkk[0].user_id; console.log(qqq); ppp=1; if(topcis[0].user_id==park || park2==admin) { kim=true; } else if(topcis[0].user_id!=park) { kim=false; } 응답.render('detail.ejs', {posts: kkk,came: id,kim: kim, ppp: ppp, qqq: qqq});
} }) } var sql2= 'UPDATE post INNER JOIN login ON login.id=post.numberid SET hit=hit+1 WHERE post.id=?'; connection.query(sql2,[id],function(err,topcis2){ if(err) { console.log(err); 응답.status(500).send('Internal Server Error'); } else { if(topcis[0].user_id==park || park2==admin) { kim=true; } else if(topcis[0].user_id!=park) { kim=false; } } }) }) })
app.post('/detail/:id',로그인했니, function(req, res){
var id= parseInt(req.params.id);
var sql= 'SELECT post.id, comment.ccon ,login.user_id ,comment.cnumber, comment.lastdate, login.id, post.numberid FROM comment INNER JOIN post ON comment.cnumber=post.id INNER JOIN login ON login.id=post.numberid'; connection.query(sql,function(err,topcis){ if(err) { console.log(err); res.status(500).send('Internal Server Error'); } else { var comm =req.body.comm; var lastdate = moment().format('YYYY-MM-DD hh:mm:ss'); var sql2 = 'INSERT INTO comment (ccon, cnumber, lastdate) VALUES(?, ?, ?)'; connection.query(sql2,[comm,id,lastdate],function(err,topcis2){ if(err) { console.log(err); res.status(500).send('Internal Server Error'); } else { res.redirect('/detail/'+id); } }) }
}) })
detail.ejs <% for(var i=0; i < posts.length; i++) { %> <div class="cbox"> <div class="writer" style="display: inline-block;"><%= qqq %></div> <div class="lastdate" style="display: inline-block;"><%= posts[i].lastdate %></div> <div class="count"><%= posts[i].ccon %></div> </div> <% } %> 이렇게하면
지금 로그인 아이디는 admin 입니다.
admin으로 출력되야하는데 아이디 a로 출력됩니다 오류는 없는데 어떻게 수정해줘야할지 고민입니다.
2023년 2월 11일 22:03 #67999
이해욱참가자qqq에 댓글 글쓴이가 나와야되는데 댓글 말고 글쓴이가 출력됩니다 예를들어 admin이란 아이디로 댓글 작성해도 댓글글쓴이가 아닌 댓글이 달린 현재 글에 작성한 아이디가 입력됩니다
2023년 2월 12일 09:36 #68026
codingapple키 마스터의도대로 출력이안되면 SQL 쿼리문이 이상한가봅니다 login.id=post.numberid 이런게 맞나 확인합시다
2023년 2월 12일 18:35 #68083
이해욱참가자지금 db 상황은 이럽니다 sql 커리문 app.get('/detail/:id',로그인했니, function(요청, 응답){ var ppp=0; var id= parseInt(요청.params.id); var park= 요청.user[0].user_id; var park2=요청.user[0].gp; var admin='admin'; var kim = false; var sql = 'SELECT * FROM post INNER JOIN login ON login.id=post.numberid WHERE post.id=?'; connection.query(sql,[id],function(err,topcis){ if (topcis.length == 0) { if(topcis[0].user_id==park || park2==admin) { kim=true; } else if(topcis[0].user_id!=park) { kim=false; } console.log(topcis); 응답.render('detail.ejs', {posts: topcis,came: id,kim: kim,ppp: ppp}); } else { var sqll = 'SELECT * FROM comment INNER JOIN post ON comment.cnumber=post.id INNER JOIN login ON login.id=post.numberid WHERE post.id=?'; connection.query(sqll,[id],function(err,kkk){ if (kkk.length == 0) { ppp=0; if(topcis[0].user_id==park || park2==admin) { kim=true; } else if(topcis[0].user_id!=park) { kim=false; } 응답.render('detail.ejs', {posts: topcis,came: id,kim: kim, ppp: ppp}); } else { var qqq= kkk[0].user_id; console.log(qqq); ppp=1; if(topcis[0].user_id==park || park2==admin) { kim=true; } else if(topcis[0].user_id!=park) { kim=false; } 응답.render('detail.ejs', {posts: kkk,came: id,kim: kim, ppp: ppp, qqq: qqq}); } }) } var sql2= 'UPDATE post INNER JOIN login ON login.id=post.numberid SET hit=hit+1 WHERE post.id=?'; connection.query(sql2,[id],function(err,topcis2){ if(err) { console.log(err); 응답.status(500).send('Internal Server Error'); } else { if(topcis[0].user_id==park || park2==admin) { kim=true; } else if(topcis[0].user_id!=park) { kim=false; } } }) }) }) 이런상태 인데 뭐 오류나 그런건 없습니다 qqq에 댓글 글쓴이가 나와야되는데 댓글 말고 글쓴이가 출력됩니다 예를들어 admin이란 아이디로 댓글 작성해도 댓글 글쓴이가 admin 아닌 댓글이 달린 현재 글 작성자인 a라는 아이디가 댓글 작성자로 입력됩니다
2023년 2월 13일 09:48 #68122
codingapple키 마스터댓글글쓴이는 comment테이블이랑 login 테이블이랑 JOIN해야나올듯요 comment테이블에 댓글작성자 id같은거부터 저장합시다
2023년 2월 13일 15:26 #68173
이해욱참가자INNER JOIN 다음 ON 을 2개쓸수있나요? SELECT * FROM comment INNER JOIN post ON comment.cnumber=post.id INNER JOIN login ON login.id=post.numberid ON comment.ccnumberid=login.id WHERE post.id=3 SELECT * FROM comment INNER JOIN post ON comment.cnumber=post.id INNER JOIN login ON login.id=post.numberid , comment.ccnumberid=login.id WHERE post.id=3 SELECT * FROM comment INNER JOIN post ON comment.cnumber=post.id INNER JOIN login ON login.id=post.numberid INNER JOIN comment ON comment.ccnumberid=login.id WHERE post.id=3 3개 다 해봤는데 안되네요
2023년 2월 13일 19:59 #68233
codingapple키 마스터복잡하면 쿼리문을 2개 씁시다 cnumber 컬럼은 부모게시물 번호 저장하는 컬럼인거같은데 지금은 login.id이랑 JOIN하면 아무의미없습니다
-
글쓴이글
10 글 보임 - 1 에서 10 까지 (총 10 중에서)
- 답변은 로그인 후 가능합니다.