2013-03-01 32 views
1

我需要通過一週的技能發送工作推薦郵件給求職者,它會看起來像一個timesjob模板,像10推薦的工作,我的技能,我寫下面的代碼,但我可以通過10封電子郵件獲得10份工作,但不在同一封電子郵件中,我的代碼有什麼問題?任何人都可以幫助我嗎?php郵件while循環

<?php 
    $today_date=date("Y-m-d"); 

/* jobs  
    key_skills 
    id 
    postdate 
    reference_no 
    company_id 
    designation 
    locations 
    qualification 
    industry 
    job_type 
    job_timing 
    expr_min 
    min_expmon 
    expr_max 
    max_expmon 
    compensation_lacs 
    compensation_thousand 
    description 
    cr_dt 
    status 
    interview_date 
    intw_time 
    intw_exptime 
    t_status 
    website  
*/ 
    // AND j.key_skills like '%".$get_singlekeyskill[$i_key]."%' 


    "SELECT 
    j.id, 
    j.user_id, 
    j.first_name, 
    j.last_name, 
    j.mobile_no, 
    j.experience_years, 
    j.experience_months, 
    j.annual_salary_lacs, 
    j.annual_salary_thousan, 
    j.functional_type, 
    j.key_skills, 
    j.prefered_cityname, 
    j.basic_qualification, 
    j.post_qualification, 
    c.category_id, 
    c.category_name, 
    d.degree_id, 
    d.degree_name, 
    u.user_email 
FROM 
    users as u, 
    job_seeker as j, 
    category as c, 
    degree as d 
WHERE 
    c.category_id = j.functional_type 
AND 
    d.degree_id=j.basic_qualification 
AND 
    j.user_id=u.id" 

$check_searching_query = mysql_query() or die (mysql_error()); 

$numtest_rows=mysql_num_rows($check_searching_query);  

    /* $fetch_allqry=mysql_fetch_array($check_searching_query); */  

if($numtest_rows>0) 
{ 
    while($fetch_allqry=mysql_fetch_array($check_searching_query)) 
    {   
     $getjobseeker_id=$fetch_allqry['user_id'];  

     $get_usermailid=$fetch_allqry['user_email']; 



     $get_userfirstname=$fetch_allqry['first_name']; 
     $get_usermobileno=$fetch_allqry['mobile_no']; 
     $get_userexpyr=$fetch_allqry['experience_years']; 
     $get_userexpmonth=$fetch_allqry['experience_months']; 
     $get_usersallac=$fetch_allqry['annual_salary_lacs']; 
     $get_usersalthous=$fetch_allqry['annual_salary_thousan']; 
     $get_userfuncttype=$fetch_allqry['category_name']; 
     $get_userskill=$fetch_allqry['key_skills']; 
     $get_userpreferedcityname=$fetch_allqry['prefered_cityname']; 
     $get_userqual=$fetch_allqry['degree_name']; 
     $get_singlekeyskill=explode(",",$get_userskill);  

     foreach($get_singlekeyskill as $get_userskill) { 

      /* 
       job_seeker 
       d 
       user_id 
       first_name 
       last_name 
       fathers_name 
       dob 
       gender 
       marital_status 
       country_id 
       state_id 
       city_name 
       mobile_no 
       tel_country_code 
       tel_city_code 
       phone_no 
       experience_years 
       experience_months 
       annual_salary_lacs 
       annual_salary_thousan 
       functional_type 
       industry_type 
       key_skills 
       resume_title 
       prefered_city_id 
       prefered_cityname 
       basic_qualification 
       post_qualification 
       functional_type 
       industry_type 
       */ 

       /* 
       category 
       category_id 
       category_name  
       */ 

       /* 
        degree 
        degree_id 
        degree_name 
       */ 

        $sel_cron=mysql_query("SELECT * FROM jobs WHERE `postdate` BETWEEN DATE_SUB(NOW() , INTERVAL 7 DAY) AND NOW() ") or die(mysql_error()); 
        $fet_cr=mysql_fetch_assoc($sel_cron) ; 

        while($fet_cr=mysql_fetch_array($sel_cron))      
        {  
        $db_job_id=$fet_cr['id'];  
        $db_jpostdate=$fet_cr['postdate'];  
        $num_empid=$fet_cr['company_id']; 
        $sel_companname=mysql_query("select * from employer where `user_id`='$num_empid' ") or die(mysql_error()); 
        $fetch_companname=mysql_fetch_array($sel_companname); 
        $emp_companyname=$fetch_companname['company_name']; 
        $db_keyskill=$fet_cr['key_skills']; 
        $db_minyear=$fet_cr['expr_min']; 
        $db_minmon=$fet_cr['min_expmon']; 
        $db_maxyear=$fet_cr['expr_max']; 
        $db_maxmon=$fet_cr['max_expmon'];   
        $db_locations=$fet_cr['locations'];    
        $db_job_timing=$fet_cr['job_timing']; 
        $db_designation=$fet_cr['designation']; 
        $db_description=$fet_cr['description'];  
        $db_interviewdate=$fet_cr['interview_date'];    
        $db_complac=$fet_cr['compensation_lacs']; 
        $db_compthousand=$fet_cr['compensation_thousand'];  

        /* 
         $overall_arr[]=array($db_job_id, 
            $db_jpostdate, 
            $num_empid, 
            $db_keyskill, 
            $db_minyear, 
            $db_minmon, 
            $db_maxyear, 
            $db_maxmon, 
            $db_designation, 
            $db_description, 
            $db_interviewdate 
         ); 
        */ 
       } 

       $admin_emialid="[email protected]"; 

       $content_pop="hfkhkdhfdjfjgdfjgdjgfjgdjfgjdgfj dvfdfhdgfhdgfsdgfhjdfh dhfgdhgfdjfg " . $db_job_id; 
       $subj="Recoomended mail"; 

       $headers1 = "From: JOBSITE \r\n"; 
       $headers1 .= "Reply-To: ".$admin_emialid. "\r\n"; 
       $headers1 .= "MIME-Version: 1.0\r\n"; 

       $headers1 .= "Content-Type: text/html; charset=ISO-8859-1\r\n"; 
     } 
    } 
    mail($get_usermailid,$subj, $content_pop,$headers1); 
} 
?> 

以上只是一個例子一個我試圖

+1

真的很難讀取您的代碼,因爲縮進是奇怪的和不一致的。你能解決這個問題嗎? – DiMono 2013-03-01 14:43:27

+6

偏題:請注意,不推薦使用'mysql_xx()'函數。強烈建議切換到替代'mysqli'或'PDO'庫。 – SDC 2013-03-01 14:47:52

回答

2

如果您收到10封電子郵件而不是1封郵件,那麼您的mail()函數位於foreach()循環內而不是while()循環內。從這個更改代碼的底部:

  $subj="Recoomended mail"; 
      $headers1 = "From: JOBSITE \r\n"; 
      $headers1 .= "Reply-To: ".$admin_emialid. "\r\n"; 
      $headers1 .= "MIME-Version: 1.0\r\n"; 
      $headers1 .= "Content-Type: text/html; charset=ISO-8859-1\r\n"; 
     } 
    } 
    mail($get_usermailid,$subj, $content_pop,$headers1); 
} 

...這樣的:

 } 
     subj="Recommended mail"; 
     $headers1 = "From: JOBSITE \r\n"; 
     $headers1 .= "Reply-To: ".$admin_emialid. "\r\n"; 
     $headers1 .= "MIME-Version: 1.0\r\n"; 
     $headers1 .= "Content-Type: text/html; charset=ISO-8859-1\r\n"; 
     mail($get_usermailid,$subj, $content_pop,$headers1); 
    } 
} 

而且,正如在已,mysql_功能被棄用評論從未被提及,並最終會被刪除,從PHP代碼庫完全。您應該切換到mysqli或用於查詢的PDO界面,以確保您的代碼在未來的PHP更新中不會中斷。

1

請使用內部連接或左合併爲記錄不重複,當你做這樣的事情

0

你沒有提及任何在where子句中你的工作表查詢:

$sel_cron=mysql_query("SELECT * FROM jobs WHERE `postdate` BETWEEN DATE_SUB(NOW() , INTERVAL 7 DAY) AND NOW() ") or die(mysql_error()); 

我覺得應該有一些類型根據崗位技能where子句需要的