2011-08-05 3 views
0

나는 축소판 이미지 그리드가 있고 사용자가 이미지를 클릭하면 다음을 클릭하여 그리드의 다음 이미지를 보거나 이전 이미지를 볼 수 있습니다. (그 반대).클릭하면 다음 이미지 생성 : 이전 및 다음

mysql에서 해당 이미지 소스 목록을 보려면 별도의 테이블을 가지고 있습니까? 아니면 배열과 같은 것을 사용 하시겠습니까? 아니면 더 좋은 옵션이 있습니까? 오랫동안 잘못 생각한 것입니다. 이미지가 수백만 개라면 서버 속도가 느려 집니까?

예제를 보여 주시겠습니까?

감사합니다.

답변

0

왜 문제가 있는지 잘 모르겠습니다 ... 그리드를 표시하고 있다면 이미 이전/다음 이미지에 액세스 할 수 있다는 의미입니다. 맞습니까? 얼마나 많은 사용자가 있느냐에 따라 표시되는 그리드의 이미지 ID 목록을 세션에 넣기 만하면 데이터베이스를 치지 않아도됩니다 (이미지 자체를 가져 오는 것 제외). 사용자가 이미지를 스크롤하면서 (prev/next를 사용하여) 사용자가 끝까지 가까워지면 목록에 추가하기 만하면됩니다.

+0

이있는 경우 만하더라도 그가 필요로이 격자를 표시하는 대신에 컴퓨팅의, 증가해야하고 ID를 감소로

$width = 2; // max_width of your grid echo "<table border=1>\n"; foreach ($main as $id => $img) { if ($id % $width == 0) echo "<tr>\n"; // create a new row if the width has been reached echo "<td>".$img['src']."</td>"; } echo '</table>'; 

그런 다음 이미지를 전환하기 위해 자바 스크립트가 훨씬 더 쉽게해야한다 테이블 (파일 목록을 가지기 위해). –

0

네, 테이블이 필요합니다.
디렉토리에 파일 수 제한이 있기 때문에 모든 파일을 하나의 디렉토리에 저장하면 안됩니다. 따라서 다른 파일에있을 수 있기 때문에 폴더에서 "다음"파일을 읽을 수 없습니다. 추가 정보는 다음을 참조하십시오. PHP security and unique naming conventions

+0

나는 그가 그 (것)들을 폴더에서 당기고 싶다고 생각하지 않는다, 나는 그가 사용자가 심상을 찾고 검색하기를 원한다고 생각한다. –

-1

여기서는 다차원 배열이 필요하지 않다고 생각합니다. 이미지의 순차적 ID는 1에서 n까지이므로 next() 및 prev() 함수를 쉽게 구현할 수 있습니다.

예를 들어, 필자의 MySQL 쿼리 결과입니다.

Array 
(
[0] => Array 
    (
     [title] => Title test 
     [src] => /images/1.jpg 
    ) 

[1] => Array 
    (
     [title] => Title 
     [src] => /images/12123.jpg 
    ) 

[2] => Array 
    (
     [title] => Image 
     [src] => /images/32132.jpg 
    ) 

[3] => Array 
    (
     [title] => Image test 
     [src] => /images/332.jpg 
    )  
) 

그러면보기에서 그리드 생성을 처리합니다. 당신이

[0][0] [0][1] [0][2] 
[1][0] [1][1] [1][2] 
+0

[facepalm] (http://i384.photobucket.com/albums/oo281/CooperDaKat/facepalmLion.jpg) –

관련 문제