2012-05-21 2 views
1

이미지 URL 및 기타 데이터를 저장하는 데이터베이스가 있는데 갤러리를 표시하고 싶지만 사이트가 공개되어 일부 이미지를 삭제할 수 있습니다. 사용자가 이미지 소스와 제목을 업로드하면 자동 증분 고유 ID를 사용하여 데이터베이스에 삽입됩니다. 현재 스크립트는 ID에서 1을 더하거나 뺄 때만 다음 또는 이전 이미지를 표시합니다. 이 작업을 수행하는 더 좋은 방법이 있습니까? 내 현재 스크립트가 다음 ID 년대는 3,4,5,7,8을 어디에PHP MySQL에서 다음 결과 가져 오기

function image_control($id){ 
$next=$id+'1'; 
$prev=$id-'1'; 
$query = "SELECT MAX(id), MIN(id) FROM mp_images"; 
$result = mysql_query($query) or die(mysql_error()); 
while($row = mysql_fetch_array($result)){ 
    $max = $row['MAX(id)']; $min = $row['MIN(id)']; 
} 
if($next==$max+"1"){$next=$min;} if($prev==$min-"1"){$prev=$max;} 
echo "<a href='".$next."'>Next Image</a> <a href='".$prev."'>Previous Image</a>"; 
} 

이 실패의 예는 이미지 일 것이다.

+3

고대의'mysql_ *'함수로 새로운 코드를 작성하는 것을 중단하십시오. 더 이상 유지 관리되지 않으며 커뮤니티에서 [지원 중단 프로세스] (http://goo.gl/KJveJ)를 시작했습니다. 대신 [prepared statements] (http://goo.gl/vn8zQ)에 대해 알아야하고 [PDO] (http://php.net/pdo) 또는 [MySQLi] (http://php.net/)를 사용해야합니다. mysqli). 결정할 수없는 경우 [이 기사] (http://goo.gl/3gqF9)를 선택하면 도움이됩니다. 관심이 있으시면 [여기 PDO 관련 튜토리얼] (http://goo.gl/vFWnC)을 참조하십시오. – vascowhite

+0

vascowhite가 옳다. 그러나 더 많은 것을 배우기 위해 기사에 대한 그의 링크는별로 도움이되지 않는다. 나는 [this stackoverflow answer] (http://stackoverflow.com/questions/13569/mysqli-or-pdo-what-are-the-pros-and-cons) 훨씬 더 유익한 발견했다. –

답변

5

다음 ID를 얻기위한 몇 가지 의사 코드 :

$nextId = SELECT id FROM mp_images WHERE id > $currentId ORDER BY id ASC LIMIT 1 
if (no results) 
    // no next image 

및 이전에 대한 :

$prevId = SELECT id FROM mp_images WHERE id < $currentId ORDER BY id DESC LIMIT 1 
if (no results) 
    // no previous image 

그것은 더 다음 이미지가 (당신이 할 수없는 경우 무엇을해야하는지에 당신까지 예를 들어 첫 번째 이미지 가져 오기) 또는 이전 이미지가 없습니다 (첫 번째 이미지에 있습니다).

+0

휴식 후에 다음 이미지를 가져 오는 방법을 알려주시겠습니까? 예. 7시 8 분에 실종 되었다면 9시는 어떻게 되나요? –

+1

무엇이 중단됩니까? 무슨 뜻인지 이해가 안 돼요 ... –

+0

방금 ​​말씀 드렸습니다. 내 의사 코드가 정확히 그렇게합니다! –

관련 문제