Php 走出内环,与外环相连

Php 走出内环,与外环相连,php,mysql,csv,Php,Mysql,Csv,我有一个while循环,它从csv中获取数据。在while循环中有一个条件(如果条件)如果条件为true,则每个循环将在我们希望一次向数据库中插入一行的位置执行。对于csv的每一行,这应该继续。如果我在csv中有10行,它应该在数据库中插入所有10行。但是mycode正在插入第一行10次 $handle = fopen($_FILES['upcsv']['tmp_name'], "r"); $count = count(file($_FILES['upcsv']['tmp_name'])); f

我有一个while循环,它从csv中获取数据。在while循环中有一个条件(如果条件)如果条件为true,则每个循环将在我们希望一次向数据库中插入一行的位置执行。对于csv的每一行,这应该继续。如果我在csv中有10行,它应该在数据库中插入所有10行。但是mycode正在插入第一行10次

$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');
  • 您需要设置一个
    中断在您的代码之后。
    它将关闭第一个循环(foreach)并下降

  • 添加
    继续2在sql插入之后。
    这将结束此循环并转到while循环的开头,然后继续工作

    $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');