我想要插入时db中的三条记录

时间:2017-09-27 19:45:02

标签: mysql

我是一名学生,我有一个在线参与项目 我制作了这段代码,但是当我尝试时,它为一个roll_number插入了3条记录。我做错了什么?

<?php 
include("db.php");
include("header.php");
$hostname = "localhost";
$username= "root";
$password = "";
$databaseName = "attendance_system";
date_default_timezone_set('Europe/Bucharest');
$con = mysqli_connect($hostname, $username, $password, $databaseName);
if(isset($_POST["submit"]))
{foreach($_POST['prezenta'] as $id=>$prezenta)
{
    $student_nume=isset($_POST['student_name'][$id]);
    $student_prenume=isset($_POST['roll_name'][$id]);
     $date=date( 'Y-m-d H:i:s');

    mysqli_query($con,"insert into attendence_records(student_name, 
    roll_name, attendence_status, data) SElect 
    student_name,roll_name,'$prezenta','$date' from attendence1");

    //VALUES ('$student_nume','$student_prenume','$prezenta','$date')");


    }
   }

   ?>
   <div class="panel panel-default">
   <div class="panel panel-heading">
  <h2>
   <a class="btn btn-success" href="add.php"> Adauga student</a>
  <a class="btn btn-info pull-right" href="viewall.php"> vizualizare</a>
  </h2>
  <div class="well text-center">Data:<?php echo date( 'Y-m-d H:i:s');?> 
  </div>
  <div class="panel panel-body">
  <form action="index1.php" method="post">
        <table class="table table-striped">
            <thead>
            <tr class="success">
                <th>NR CRT.</th>
                <th>matricola</th>
                <th>nume</th>
                  <th>data</th>
                <th>prezenta</th>

            </tr>
            </thead>
            <tbody>
 <?php

  $result=mysqli_query($con,"Select * from attendence1");
  $serialnumber=0;
  $counter=0;

    while($row=mysqli_fetch_array($result))
  {
   $serialnumber++;
   ?>
   <tr>
             <td><?php echo $serialnumber;?>  </td>
            <td><?php echo $row['roll_name'];?></td>
            <input type="hidden" value="<?php echo $row['roll_name'];?> 
      name="roll_name">
            <td><?php echo $row['student_name'];?></td>
            <input type="hidden" value="<?php echo $row['student_name'];?> 
    name="student_name">
            <td><?php echo date( 'Y-m-d H:i:s');?></td>
            <td>
           <input type="radio" name="prezenta[<?php echo $counter;?>]" 
    value="Present  ">Prezent
           <input type="radio" name="prezenta[<?php echo $counter;?>]" 
   value="Absent">Absent
    </td>
        </tr>

 <?php
 $counter++;

  }
   ?>

     </table>
   <input type="submit" name="submit" value="submit" class="btn btn-primary">

我试图将3个学生记录作为测试

1   rwwr    vasile  2017-09-27 22:06:43 Prezent  Absent
2   2233    opm 2017-09-27 22:06:43 Prezent  Absent
3   963 vasile  2017-09-27 22:06:43 Prezent  Absent

但是在数据库中

Modifică Modifică
 Copiază Copiază
 Șterge Șterge
352
vasile
rwwr
Present  
2017-09-27 22:43:30

Modifică Modifică
 Copiază Copiază
 Șterge Șterge
353
opm
2233
Present  
2017-09-27 22:43:30

Modifică Modifică
 Copiază Copiază
 Șterge Șterge
354
vasile
963
Present  
2017-09-27 22:43:30

Modifică Modifică
 Copiază Copiază
 Șterge Șterge
355
vasile
rwwr
Absent
2017-09-27 22:43:30

Modifică Modifică
 Copiază Copiază
 Șterge Șterge
356
opm
2233
Absent
2017-09-27 22:43:30

Modifică Modifică
 Copiază Copiază
 Șterge Șterge
357
vasile
963
Absent
2017-09-27 22:43:30

Modifică Modifică
 Copiază Copiază
 Șterge Șterge
358
vasile
rwwr
Present  
2017-09-27 22:43:30

Modifică Modifică
 Copiază Copiază
 Șterge Șterge
359
opm
2233
Present  
2017-09-27 22:43:30

Modifică Modifică
 Copiază Copiază
 Șterge Șterge
360
vasile
963
Present  
2017-09-27 22:43:30

这是我的表http://prntscr.com/gr95dj的结构 - 这是attendence_records和http://prntscr.com/gr95tm这是关注1

1 个答案:

答案 0 :(得分:1)

很明显,您的数据库中会插入三条记录。

在这一行:

mysqli_query($con, "insert into attendence_records(student_name, 
roll_name, attendence_status, data)
select student_name, roll_name, '$prezenta', '$date' from attendence1");

至于价值,您从表中选择:

select student_name, roll_name, '$prezenta', '$date' from attendence1");

此选择将返回此表中的所有当前记录。因此,如果您的表中有3条记录,那么它将返回3条记录,然后您有一条循环,用于您提交的3条记录,这些记录将乘以表中的3条记录,结果将是您拥有的这9条记录

我不确定您的 select 声明中使用 insert 的登录信息。即使您想这样做,我认为您应该 where clause 至少选择要选择的特定记录