2010-06-25 6 views
2

저는 여전히 함수와 그 함수가 어떻게 작동 하는지를 배우고 있습니다. 나는 내가 잘못하고있는 것이 단지 그것을 고치는 방법이 아니라는 것을 안다. 데이터베이스에서 이미지 데이터를 가져 와서 화면에 반환하는 함수를 작성했습니다. 작동하지만 둘 이상의 이미지가있는 경우 마지막 이미지 만 반환합니다. 나는 문제가 있다는 것을 알고있다 $project_image는 while 루프가 작동하는 방식 때문에 마지막 이미지를 반환하는 것이지만 내 질문은 어떻게 while 루프를 사용하지 않거나 하나 이상의 이미지를 $project_image 변수에 추가 할 수 있는가이다.루프를 함수 내에서 사용하기

요약 텍스트 기능

function get_project_image($id,$type="thumb",$src="false",$limit=1){ 
    if($type =="main"){ 
     $project_image_qry = mysql_query(" SELECT i_name FROM `project_images` WHERE i_project_id = '$id' AND i_type= '2' LIMIT $limit ") or die(mysql_error()); 
     $project_image=""; 
      while($project_image_row = mysql_fetch_array($project_image_qry)) { 
      $project_image_result = mysql_fetch_array ($project_image_qry);  

       if($src=="true"){ 
        $project_image .= '<img src="'.admin_settings('site_url').admin_settings('image_main_dir').'/'.$project_image_result['i_name'].'" alt="project_image"/>'; 
        } 
       else{ 
        $project_image .= $project_image_result['i_name']; 
        } 
      } 
     } 
    return $project_image; 
    } 

답변

3

귀하의 while 상태가 괜찮지 만, 당신이 $project_image_row$project_image_result에 두 번 가져 오는 것 같다, 그래서 당신은 다른 모든 이미지를 건너 뛰는 할 것입니다. (while 루프가 좋은에서), 그 배열을 참조하기 위해 루프 내 $project_image_result 대신 $project_image_row을 사용하여 한 번만 배열을 가져 오기 : 또한

while($project_image_result = mysql_fetch_array($project_image_qry)) { 
    if($src=="true"){ 
     $project_image .= '<img src="'.admin_settings('site_url').admin_settings('image_main_dir').'/'.$project_image_result['i_name'].'" alt="project_image"/>'; 
    } 
    else{ 
     $project_image .= $project_image_result['i_name']; 
    } 
} 

기본적으로 만 요청 하나에 말했다처럼 보인다 데이터베이스의 이미지. 당신은 기본 매개 변수 $limit=1을 가지고 있고, 결과를 필터링하기 위해 SQL LIMIT을 사용하기 때문에, get_project_image에 네번째 인자를 넘겨주지 않으면, mysql_query은 하나의 결과만을 반환 할 것입니다 (당신은 get_project_image에 대한 호출을 포함하지 않았습니다. 당신이 그걸 처리했는지 모르겠다.

+0

고맙습니다. 위 예제에서'while' 루프에서'$ project_image_row' 대신'$ project_image_result'를 사용하겠습니다. 또한 기본 제한에 대한 의견에 관해서는 내 함수 호출은'echo get_project_image ($ project_row [ 'p_id'], "main", "true", 2);와 같이 보입니다. 두 이미지 유형은 유형 당 하나의 이미지 만 가지고 있습니다. 다시 감사합니다. – BandonRandon

+0

@Bandon 실로 내가 해냈습니다. 좋은 캐치; 이제 고쳐 졌어. –

관련 문제