doulu1945 2015-06-23 09:19
浏览 364
已采纳

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

this is my php code. hire is a problem i use check box selection and insert data in my database. but it insert data by foreach loop. so when press ok if data successfully insert then for 3 selection it say

successfully register successfully register successfully register but i want it say only once successfully register

<?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条回答

  • duangewu5234 2015-06-23 09:22
    关注

    Before you start your foreach loop set a flag like:

     $error = false;
    

    Then in your loop

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

    And after the loop has closed

    if($error){
       echo "problem show";
    }else{
       echo "successfully register";
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?
  • ¥15 乘性高斯噪声在深度学习网络中的应用
  • ¥15 运筹学排序问题中的在线排序
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛