• 로그인
  • 장바구니에 상품이 없습니다.

home2 게시판 Node.js, Express 게시판 댓글 작성자불러오기

댓글 작성자불러오기

10 글 보임 - 1 에서 10 까지 (총 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 밑에 댓글에서는 안되네요 ㅠㅠ
    #67907

    codingapple
    키 마스터
    무슨에러가납니까
    #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로 출력됩니다
    오류는 없는데 어떻게 수정해줘야할지 고민입니다.
    #67989

    codingapple
    키 마스터
    qqq를 서버에서 출력하면 의도대로 잘 나오고 있습니까
    #67999

    이해욱
    참가자
    qqq에 댓글 글쓴이가 나와야되는데
    댓글 말고 글쓴이가 출력됩니다
    예를들어
    admin이란 아이디로 댓글 작성해도
    댓글글쓴이가 아닌 댓글이 달린 현재 글에 작성한 아이디가 입력됩니다
    #68026

    codingapple
    키 마스터
    의도대로 출력이안되면 SQL 쿼리문이 이상한가봅니다 login.id=post.numberid 이런게 맞나 확인합시다
    #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라는 아이디가 댓글 작성자로 입력됩니다
    
    #68122

    codingapple
    키 마스터
    댓글글쓴이는 comment테이블이랑 login 테이블이랑 JOIN해야나올듯요 
    comment테이블에 댓글작성자 id같은거부터 저장합시다
    #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개 다 해봤는데 안되네요
    
    
    #68233

    codingapple
    키 마스터
    복잡하면 쿼리문을 2개 씁시다 cnumber 컬럼은 부모게시물 번호 저장하는 컬럼인거같은데 지금은 login.id이랑 JOIN하면 아무의미없습니다
10 글 보임 - 1 에서 10 까지 (총 10 중에서)
  • 답변은 로그인 후 가능합니다.

About

현재 월 700명 신규수강중입니다.

  (09:00~20:00) 빠른 상담은 카톡 플러스친구 코딩애플 (링크)
  admin@codingapple.com
  이용약관
ⓒ Codingapple, 강의 예제, 영상 복제 금지
top

© Codingapple, All rights reserved. 슈퍼로켓 에듀케이션 / 서울특별시 강동구 고덕로 19길 30 / 사업자등록번호 : 212-26-14752 온라인 교육학원업 / 통신판매업신고번호 : 제 2017-서울강동-0002 호 / 개인정보관리자 : 박종흠