2017-02-28 60 views
2

我在这里有一个问题。我不知道如何给出合适的问题标题。所以这是我的问题。CSV只导入一定数量然后超出数据进入另一个表

我有一组csv数据。比方说30个数据。条件是我想只有20个数据转到表A,另外10个数据转到表B.

您是否有任何关于如何使用此逻辑的示例?可以通过组合while循环和if语句来完成吗?顺便说一下,这是一个PHP,我仍然是一个新手程序员。希望有人能帮助我。谢谢。

编辑: 我当前的代码

while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) 
{ 
    if($leftPax > 0) 
    { 
     $registrantBean = new z_EventRegistrants(); 
     $registrantBean->last_name = $data[1]; 
     $registrantBean->id_no = $data[0]; 
     $registrantBean->phone_mobile = $data[2]; 
     $registrantBean->email1 = $data[3]; 
     $registrantBean->gender = $data[4]; 
     $registrantBean->date_of_birth = $data[5]; 
     $registrantBean->age = $data[6]; 
     $registrantBean->race = $data[7]; 
     $registrantBean->z_eventregec5erations_ida = $registrationBean->id; 
     $registrantBean->save(); 
     $count++; 
     error_log(print_r($_REQUEST['session'], 1)); 
     foreach($_REQUEST['session'] as $aid=>$sid) 
     { 
      $attendanceBean = new z_EventAttendances(); 
      $attendanceBean->name = $registrantBean->last_name; 
      $attendanceBean->z_eventsessions_z_eventattendancesz_eventsessions_ida = $sid; 
      $attendanceBean->z_eventactivities_z_eventattendances_1z_eventactivities_ida = $aid; 
      $attendanceBean->z_eventregistrations_z_eventattendancesz_eventregistrations_ida = $registrationBean->id; 
      $attendanceBean->z_eventregistrants_z_eventattendancesz_eventregistrants_ida = $registrantBean->id; 
      $attendanceBean->save(); 
     } 
    } 
    else 
    { 
     $waitlistBean = new z_EventWaitlists(); 
     $waitlistBean->name = $data[1]; 
     $waitlistBean->save(); 
    } 
} 

我想要什么,20个数据会去z_EventRegistrants和其他10将去z_EventWaitlist。

+0

你尝试过这么远吗?显示你的代码。 – CodeGodie

+0

@CodeGodie我编辑过。代码在那里。 – JunieL

回答

0

你需要问一些地方在你的代码,如果$计数== 20 `

while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) 
{ 

     if($leftPax > 0 && $count <= 20) 
     { 
      $registrantBean = new z_EventRegistrants(); 
      $registrantBean->last_name = $data[1]; 
      $registrantBean->id_no = $data[0]; 
      $registrantBean->phone_mobile = $data[2]; 
      $registrantBean->email1 = $data[3]; 
      $registrantBean->gender = $data[4]; 
      $registrantBean->date_of_birth = $data[5]; 
      $registrantBean->age = $data[6]; 
      $registrantBean->race = $data[7]; 
      $registrantBean->z_eventregec5erations_ida = $registrationBean->id; 
      $registrantBean->save(); 
      $count++; 
      error_log(print_r($_REQUEST['session'], 1)); 
      foreach($_REQUEST['session'] as $aid=>$sid) 
      { 
       $attendanceBean = new z_EventAttendances(); 
       $attendanceBean->name = $registrantBean->last_name; 
       $attendanceBean->z_eventsessions_z_eventattendancesz_eventsessions_ida = $sid; 
       $attendanceBean->z_eventactivities_z_eventattendances_1z_eventactivities_ida = $aid; 
       $attendanceBean->z_eventregistrations_z_eventattendancesz_eventregistrations_ida = $registrationBean->id; 
       $attendanceBean->z_eventregistrants_z_eventattendancesz_eventregistrants_ida = $registrantBean->id; 
       $attendanceBean->save(); 
      } 
     } 
     else 
     { 
      $waitlistBean = new z_EventWaitlists(); 
      $waitlistBean->name = $data[1]; 
      $waitlistBean->save(); 
     } 
    } 
} 

`

+0

我觉得不喜欢这个。因为我想自动做。这样的情况。 一组csv是30个数据。但注册限制只限20人。所以它会将20个数据导入到注册中。之后,其余的数据将进入等待列表。 – JunieL

相关问题