大家 看,我忆经foreach了,但怎么打印出来,还是一个值 ,总是最后一个值。但直接打印echo $pifu,又是所有的。
是怎么会事?
 
$pifu_zhi = $_POST['pifu_zhi']; 
if($uname != '' && $password != '' && $email != '' && $name != '' && $mobile != '' && $addr != ''){
  foreach($pifu_weiti as  $pifu) {  
 $sql = "insert into sdb_members(member_lv_id,uname,password,email,name,sex,b_year,b_month,b_day,area,addr,zip,qq,msn,mobile,tel,push,pifu_zhi,pifu_weiti,pifu_guomin,regtime,reg_ip) values('4','$uname','$password','$email','$name','$sex','$yyy','$mm','$dd','$area','$addr','$zip','$qq','$msn','$mobile','$tel','$push','$pifu_zhi','$pifu','$pifu_guomin', UNIX_TIMESTAMP(now()),'$iipp')";
  
 }
echo $sql;
die();
  $rs = mysql_query($sql); 
  if($rs){
     echo("<script type='text/javascript'> alert('申请成功!');location.href='index.html';</script>");
       }

解决方案 »

  1.   

    你括号放错地方了,foreach直接就结束了,最后sql拿到的就是最后一个
      

  2.   

    你不会拼接 sql 语句。。
      

  3.   

    sql问题,而且,这种写法很不安全啊
      

  4.   

    你可以:
    $pifu_zhi = $_POST['pifu_zhi']; 
    if($uname != '' && $password != '' && $email != '' && $name != '' && $mobile != '' && $addr != ''){
    $sql="";
    foreach($pifu_weiti as  $pifu) {
    $sql .= $sql==""?"insert into sdb_members(member_lv_id,uname,password,email,name,sex,b_year,b_month,b_day,area,addr,zip,qq,msn,mobile,tel,push,pifu_zhi,pifu_weiti,pifu_guomin,regtime,reg_ip) values ('4','$uname','$password','$email','$name','$sex','$yyy','$mm','$dd','$area','$addr','$zip','$qq','$msn','$mobile','$tel','$push','$pifu_zhi','$pifu','$pifu_guomin', UNIX_TIMESTAMP(now()),'$iipp')":",('4','$uname','$password','$email','$name','$sex','$yyy','$mm','$dd','$area','$addr','$zip','$qq','$msn','$mobile','$tel','$push','$pifu_zhi','$pifu','$pifu_guomin', UNIX_TIMESTAMP(now()),'$iipp')";

    }            
    $rs = mysql_query($sql);     
    if($rs){
    echo("<script type='text/javascript'> alert('申请成功!');location.href='index.html';</script>");
    }
    }