2 개의 테이블이 있습니다. 한 테이블은 게시물을 포함하고 다른 테이블은 게시물에 대한 투표를 포함합니다. 각 회원은 각 게시물마다 (+ 또는 -) 투표 할 수 있습니다. (구성 예 :상황에 따라 두 테이블의 데이터를 결합하는 방법은 무엇입니까?
- 포스트 테이블 : PID 속하는, userp 텍스트.
- 투표 테이블 : vid, userv, postid, 투표.
사용자 정보를 포함하는 하나의 표.
내가 원하는 것은 : 로그인 한 회원이라고 가정하십시오. 모든 게시물을 보여주고 싶습니다. 이미 투표 한 사람들에게 다시 투표하게하지 마십시오. (내가 투표 + 또는 무엇을 보여줘 -)가 쿼리를 많이 할 것 같은 지금 때까지 무슨 짓을
아주 나쁜 : 다음
SELECT `posts`.*, `users`.`username`
FROM `posts`,`users`
WHERE `posts`.belongs=$taken_from_url AND `users`.`usernumber`=`posts`.`userp`
ORDER BY `posts`.`pid` DESC;
과 :
foreach ($query as $result) {if (logged_in) {select vote from votes....etc} }
을
그래서 로그인하면 30 개의 게시물이 표시되고 각 게시물마다 내가 투표 한 내용과 투표 한 내용을 확인하는 30 개의 쿼리가 수행됩니다. 제 질문은 JOIN (내가 생각하기에)과 어떻게 더 짧게 할 수 있을까요? (이미 시도했지만 성공하지 못했습니다.)
안녕하세요. 답변 해 주셔서 감사합니다. 예, 방문자 (로그인하지 않은 경우)에는 다른 쿼리 (더 쉽게)가 있습니다. 회원의 경우 +1을 투표하면 db에 "plus"를 저장하고 다른 단어는 "minus"를 저장합니다. 투표를하지 않은 회원에게는 아무 것도 저장하지 않습니다 (그래서 투표 할 수있는 링크가 있습니다). 나는 코드를 시험해 볼 것이고 내가 어떤 문제를 발견하면 말할 것이다. 고마워요! :) – Nick