php foreach循环插入数据反馈每次重复

时间:2015-06-23 09:19:19

标签: php mysql

这是我的PHP代码。雇用是一个问题我使用复选框选择并在我的数据库中插入数据。但它通过foreach循环插入数据。所以当按下确定如果数据成功插入然后进行3次选择时它会说

成功注册 成功注册 成功注册 但我希望它只说一次成功注册

<?php 

    $db=require "script_database/connect.php";  
    $query = "SELECT * FROM course";
    $query1="select * from selection where student_id='1229CSE00241' and semester='FALL2015' ";
    $key=mysql_query($query1);


            if(mysql_num_rows($key)>0)
            {
            echo "you already selected courses for registration";
            }

    else if($_POST['buy']==''){
    echo "<h2><center>You didn't select any courses</h2></center>";
    }

    else{
    foreach($_POST['buy'] as $item) {

    $query = "SELECT * FROM course WHERE id = $item
    ";

    if ($r = mysql_query($query)) { 

        while ($row = mysql_fetch_array($r)) {

        $student_id="1229CSE00241";
        $id=$item;
        $course_id=$row['course_id'];
        $course_title=$row['course_title'];
        $course_credits=$row['course_credits'];
        $course_status=$row['course_status'];
         $semester="FALL2015";
        }


    } else { 
        print '<p style="color: blue">Error!</p>';
    } 

    {


    $insert_query="insert into selection(student_id,semester,course_id,course_title,course_credits,course_status,date_time) values ('$student_id','$semester','$course_id','$course_title','$course_credits','$course_status',NOW())";
    }

    //here is my problem 
    //it repeat every time when insert data but i want to make it only once

    if(mysql_query($insert_query))
    {
    echo "successfully register";
    }
    else 
    echo "problem show";


    }

    }?>

1 个答案:

答案 0 :(得分:4)

在开始foreach循环之前,设置一个标志:

 $error = false;

然后在你的循环中

if(!mysql_query($insert_query))
{
    $error =true;
}

循环结束后

if($error){
   echo "problem show";
}else{
   echo "successfully register";
}