2017-10-20 1 views
-7

사용자는 테이블에 최대 5 개의 이미지를 저장할 수 있습니다. 내가 uid홈페이지에와 단일 이미지를보고 싶습니다. 테이블의 모든 이미지를 보는 방법을 알고있었습니다. 하지만, 홈 페이지에서 하나의 이미지로 여러 사용자를 검색하려면 어떻게 upload_time 순서로 정렬해야합니까?사용자 당 목록의 첫 번째 이미지를 강조 표시하는 방법 프로필

새 프로필은 홈 페이지에서 볼 수 있습니다.

<?php 
$query2="SELECT * FROM member_images"; 
$result2=mysqli_query($db,$query2); 
?> 
    <div class="r_members_inner"> 
         <?php $i=1; 
          while($rows=mysqli_fetch_object($result2)) 
          { 
         ?> 
        <div class="item"> 
         <img src="<?php echo "member_images/".$rows->file_name; ?>" height="200px" alt=""> 
         <h4><?php echo $rows->uid; ?></h4> 
         <h5>22 years old</h5> 
        </div> 
        <?php $i++; }?> 
       </div> 

문제는 모든 사용자의 모든 이미지를 표시한다는 것입니다 :
My table structure 다음은 내 코드입니다. 나는 사용자마다 하나의 이미지를 원한다. 어떻게 그것을 얻을 수 있습니까?

+0

우편 번호. 나는 시도해. – riya

+0

답변 해 주셔서 감사합니다. – riya

답변

0

당신은 모든 결과를 반복하므로 물론 모든 이미지를 얻을 수 있습니다. 귀하의 질문은 일반적인 것입니다.

지금 나는 당신의 표는이 같은 가정 :
- 차, ID, INT, 자동 증가 키
- 사용자 테이블에서 UID, VARCHAR, foreing 키, NOT NULL
- FILE_NAME, VARCHAR, null이되지
- upload_time, 날짜, null이되지

당신이 원하는 경우에만 한 이미지를 얻기 위해 그것을 수정 :

SELECT file_name 
FROM member_images 
WHERE uid = <SOME UID> 
ORDER BY upload_time DESC 
LIMIT 1 

DESC 최신 전나무으로 결과를 정렬됩니다 티. 따라서 LIMIT 1은 최신 이미지 인 첫 번째 이미지 만 가져옵니다.

SELECT * 
FROM member_images AS m 
INNER JOIN (SELECT uid, max(upload_time) as latest 
      FROM member_images 
      GROUP BY uid) AS r 
      ON m.upload_time = r.latest and m.uid = r.uid 
ORDER BY upload_time DESC 

가 BTW 나는이 작업을 수행하는 방법을 알고하지 않았다, 그래서 웹을 검색하고, 내가 을 발견 : 이제 한 가지, 사용하는 모든 사용자에 대한 최신 이미지를 얻으려면

그것을하는 방법에 StackOverflow에 많은 페이지. 따라서 downvotes. 여러분 여기에 자신의 연구를 기대합니다.

Nic

관련 문제