首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >跳出内循环并与外循环冲突

跳出内循环并与外循环冲突
EN

Stack Overflow用户
提问于 2013-10-08 18:22:44
回答 1查看 74关注 0票数 0

我有一个while循环,它从csv.Inside获取数据,而while循环有一个条件( if条件),如果条件为真,每个循环都会被执行,我们想要一次插入一行的地方,database.This应该继续。如果我在csv中有10行,它应该在database.But中插入所有10行,mycode插入第一行10次。

代码语言:javascript
复制
$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');
EN

回答 1

Stack Overflow用户

发布于 2013-10-08 19:42:25

  1. 你需要在你的代码后面设置一个break;。它将关闭第一个循环(foreach)并关闭。
  2. 在sql插入后添加continue 2;。这将结束此循环,并转到while循环的开始并继续工作。

$handle =fopen($_FILES‘’upcsv‘,"r");$count =count(file($_FILES’‘upcsv’));fgetcsv($handle,1000,",");while (($data = fgetcsv($handle,1000,",")) !== FALSE) // **#1 point** { $clt = mysql_query("select MCLNTLKNOFLG,MCLNTDKTRNGFRM,MCLNTDKTRNGFRM,MCLNTDKTRNGTO from mclientmst where MCLNTCD =‘“.$data1.”“);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('/',$data3);$dt = $date2.'-'.$date1.'-'.$date;$dktid = mysql_query("select MAX(XDKTID) as maxid from xtempdockethdr");$maxid = mysql_fetch_array($dktid);$max = $maxid'maxid‘+1;$query =mysql_query(“插入到xtempdockethdr (XCMPCD,XCLNTCD,XDKTNO,XCNSGCD,XDKTPUDATE,XDKTPUTIME,XDKTNOPKGS,XDKTMODLV,XDKTHTOCONCD,XDKTDCTVAL,XDKTDIMWT,XDKTACTWT,XUNIQUEID,XDKTID)值(‘”.$data.’,'".$data1."',‘“.$num.”,’“.$data2.”“,‘.$dt.’,‘”.$data4.’,‘.$data5.’,‘.$data6.’,‘.$data7.’,‘'".$data8."','".$data9."','".$data10."','".$data11."','".$max."')");$i++;//继续2;//转到#1 // break;//转到#2 }} // #2点var_dump(__LINE__);//如果您放置中断操作符} fclose($handle);fclose($handle);将执行此操作

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19245084

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档