走出内循环并继续外循环

i have a while loop which is fetching data from csv.Inside while loop there is a condition(if condition) if the condition is true foreach loop will get executed where we want to insert one row at a time into the database.This should continue for every row of the csv. if I have 10 rows in csv,it should insert all 10 rows in the database.But mycode is inserting the first row 10 times.

$handle = fopen($_FILES['upcsv']['tmp_name'], "r");
$count = count(file($_FILES['upcsv']['tmp_name']));
fgetcsv($handle, 1000, ",");
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) 
{
   $clt = mysql_query("select MCLNTLKNOFLG,MCLNTDKTRNGFRM,MCLNTDKTRNGTO from mclientmst where MCLNTCD ='".$data[1]."'");
   if(mysql_num_rows($clt)>0)
   {    
      $clts = mysql_fetch_array($clt);
      if($clts['MCLNTLKNOFLG']==1)
      {
         $i=1 ;
         foreach(range ($clts['MCLNTDKTRNGFRM'], $clts['MCLNTDKTRNGTO']) as $num)
         {
           $dkt = mysql_query("select XCMPCD from  xdockethdr where XDKTNO ='$num'");
           $ndkt = mysql_query("select XCMPCD from  xtempdockethdr where XDKTNO ='$num'");
           if(mysql_num_rows($dkt)==0 && mysql_num_rows($ndkt)==0)
           {
              $date = explode('/',$data[3]);
              $dt = $date[2].'-'.$date[1].'-'.$date[0];
              $dktid = mysql_query("select MAX(XDKTID) as maxid from xtempdockethdr");
              $maxid = mysql_fetch_array($dktid);
              $max = $maxid['maxid'] +1;
              $query = mysql_query("insert into xtempdockethdr (XCMPCD,XCLNTCD,XDKTNO,XCNSGCD,XDKTPUDATE,XDKTPUTIME,XDKTNOPKGS,XDKTMODLV,XDKTHTOCONCD,XDKTDCTVAL,XDKTDIMWT,XDKTACTWT,XUNIQUEID,XDKTID) VALUES ('".$data[0]."','".$data[1]."','".$num."','".$data[2]."','".$dt."','".$data[4]."','".$data[5]."','".$data[6]."','".$data[7]."','".$data[8]."','".$data[9]."','".$data[10]."','".$data[11]."','".$max."')");   
              $i++; 
           }
         }
      }
   }    
}
fclose($handle);
header('Location:upload_docketentry.php');
  1. You need to set a break; after your code. It will close first loop (foreach) and goes down.

  2. Add continue 2; after sql inserts. this will end this loop and goes to the begining of while loop and continue work.

    $handle = fopen($_FILES['upcsv']['tmp_name'], "r");
    $count = count(file($_FILES['upcsv']['tmp_name']));
    fgetcsv($handle, 1000, ",");
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) // **#1 point**
    {
       $clt = mysql_query("select MCLNTLKNOFLG,MCLNTDKTRNGFRM,MCLNTDKTRNGTO from mclientmst where MCLNTCD ='".$data[1]."'");
       if(mysql_num_rows($clt)>0)
       {    
          $clts = mysql_fetch_array($clt);
          if($clts['MCLNTLKNOFLG']==1)
          {
             $i=1 ;
             foreach(range ($clts['MCLNTDKTRNGFRM'], $clts['MCLNTDKTRNGTO']) as $num)
             {
               $dkt = mysql_query("select XCMPCD from  xdockethdr where XDKTNO ='$num'");
               $ndkt = mysql_query("select XCMPCD from  xtempdockethdr where XDKTNO ='$num'");
               if(mysql_num_rows($dkt)==0 && mysql_num_rows($ndkt)==0)
               {
                  $date = explode('/',$data[3]);
                  $dt = $date[2].'-'.$date[1].'-'.$date[0];
                  $dktid = mysql_query("select MAX(XDKTID) as maxid from xtempdockethdr");
                  $maxid = mysql_fetch_array($dktid);
                  $max = $maxid['maxid'] +1;
                  $query = mysql_query("insert into xtempdockethdr (XCMPCD,XCLNTCD,XDKTNO,XCNSGCD,XDKTPUDATE,XDKTPUTIME,XDKTNOPKGS,XDKTMODLV,XDKTHTOCONCD,XDKTDCTVAL,XDKTDIMWT,XDKTACTWT,XUNIQUEID,XDKTID) VALUES ('".$data[0]."','".$data[1]."','".$num."','".$data[2]."','".$dt."','".$data[4]."','".$data[5]."','".$data[6]."','".$data[7]."','".$data[8]."','".$data[9]."','".$data[10]."','".$data[11]."','".$max."')");   
                  $i++; 
                  // continue 2; // Goes to #1
                  // break; // Goes to #2
               }
             } // #2 point
             var_dump(__LINE__); // This will executed if you place break operator
          }
       }    
    }
    fclose($handle);
    header('Location:upload_docketentry.php');