정말 긴 항목 목록이 있습니다 . 즉 :
$query = mysql_query("SELECT i.id
ORDER by i.id DESC LIMIT 0, 200");
while($row = mysql_fetch_array($query)){ $num_row++;
}
출력 :
[항목 1] [항목 2] [항목 3] ... [항목 200]
여기에 문제가 있습니다. 사용자 가 항목 을 좋아 했다면 각 항목을 확인해야합니다 . 첫 번째 항목 쿼리의 각 행에 대해 추가 쿼리를 실행해야합니까? 200 개의 쿼리에 대해 이야기하고 있습니다 ...이 쿼리를 첫 번째 쿼리에 조인 할 수 있습니까?
나는 "like"테이블을 다음과 같이 구조화하려고 생각하고 있었다.
id, item_ref, user_id
----------------------
1, 1, 5
1, 5, 5
1, 3, 5
user_id 5로 로그인하면 표시되어야합니다.
[ITEM 1 좋아요] [ITEM 2] [ITEM 3 좋아요] [ITEM 4] [ITEM 5 좋아요] ... [ITEM 200]
팁이 있습니까?
매우 감사!
like 테이블에 조인하고이를 사용하여 특정 사용자에 대한 좋아요가 있는지 확인할 수 있습니다. 쿼리의 일부를 놓쳤지만 다음과 같습니다 (언급 한 like 테이블을 사용한다고 가정).
SELECT i.id, l.id IS NOT NULL AS liked
FROM item i
LEFT JOIN likes l ON (i.id = l.item_ref AND l.user_id = YOURUSERIDHERE)
ORDER by i.id DESC LIMIT 0, 200
liked
결과는 주어진 사용자에 대해 좋아요가 있는지 여부입니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다