2013-12-20 1 views
1

tbl_user 테이블에 1 개 이상의 lac 사용자가 있고 모든 사용자 ID를 선택하고 각 사용자 ID를 사용하여 평생 포인트를 얻으려고합니다 & 포인트를 사용한 다음 사용할 수 있습니다 각 사용자 에 대한 점은, 아래큰 데이터를 가져 오는 동안 SQL 연결 시간 제한이 발생했습니다

$get_all_userid_qry = "SELECT user_id FROM tbl_user WHERE site_id=12345 AND    active='1'"; 
    $get_all_userid = $con->fetchAll($get_all_userid_qry); 

    //echo '<pre>';print_r($get_all_userid);exit(); 

    $available_points_array = array(); 
    $points_threshold_Distribution_data = array(); 

    $userCount = count($get_all_userid); 



    for($i = 0; $i < $userCount; $i++) 
    { 
     $name_points_qry = "SELECT sum(earned_points) as points FROM tbl_points WHERE site_id=12345 AND user_id='".$get_all_userid[$i]->user_id."' "; 
     $name_points_row = $con->fetchRow($name_points_qry); 

     $lifetime_points = $name_points_row->points; 

     //get used points by user 

     $get_used_points = "select sum(points_used) as used_pts from tbl_claimed WHERE site_id=12345 AND user_id='".$get_all_userid[$i]->user_id."' "; 
     $get_used_points_row= $con->fetchRow($get_used_points); 

     $used_points = $get_used_points_row->used_pts; 

     $available_points = $lifetime_points - $used_points; 
     $available_points_array[] = $available_points; 
    } 

을 언급하지만, 내 SQL 연결로 tbl_user에서 모든 사용자 ID의 선정에 어려움을 찾는시 사이에 시간을 얻고 그것은 내가 결과의 전체 배열을 표시하지 않는 한 print_r()을 사용합니다.

많은 양의 데이터를 선택하는 방법을 제안하십시오.

ini_set('memory_limit', '2048M'); 

또는 당신은 당신의 htaccess로 파일에이 줄을 추가 할 수 있습니다 : 그냥 여는 PHP 태그 이전

+0

'(site_id, user_id)'에 대한 색인이 있습니까? 또한 각 사용자 ID에 대해 별도의 쿼리를 수행하고 있습니까? 왜'GROUP BY user_id'를 가진 단일 쿼리가 아닌가? – Barmar

답변

0

입력

php_value memory_limit 64M 

는 희망이 도움이!

관련 문제