簡體   English   中英

提取多行並將其存儲到php Mysql中的另一個表中

[英]Fetching Multiple rows and Store it to another table in php Mysql

我正在創建一個程序來接收學生的出勤率數據並將其存儲在數據庫中。我創建了student_table,該表存儲了注冊后的學生詳細信息,例如姓名,護照號碼,班級。 我創建了另一個表“ attendance_table”。 我已經在php文件中獲取了學生的詳細信息,並顯示了帶有附加列“出勤”的列,該列需要單選按鈕值來標記存在或不存在。

我的問題是標記出勤后,我希望將其存儲在Attenance_table中。 由於詳細信息是從student_table獲取的,因此我如何將其存儲在另一個表中。 我是php新手。 謝謝。

// FETCHING DATA FROM STUDENT_TABLE//

  <tr>
<td><?php echo $row['student_name']; ?></td>
<td><?php echo $row['Passport_no'] ?></td>
<td><?php echo $row['Teacher'] ?></td>

<td><?php echo $row['Class'] ?></td>
<td><?php echo $row['Period'] ?></td>

<td>
Present<input required type="radio" name="attendance[<?php echo $row['stud_id'] ?>]" value="Present" checked>
Absent<input required type="radio" name="attendance[<?php echo $row['stud_id']; ?>]" value="Absent" >
</td>

</tr>
  <?php } ?> 

//出席表//

表格attendance表格結構

DROP TABLE IF EXISTS `attendance`;
CREATE TABLE IF NOT EXISTS `attendance` (
  `at_id` int(11) NOT NULL AUTO_INCREMENT,
  `stud_id` int(11) NOT NULL,
`student_name` varchar(100) NOT NULL,
  `Passport_no` varchar(100) NOT NULL,
  `Class` varchar(100) NOT NULL,
  `Period` varchar(100) NOT NULL,
  `Status` varchar(100) NOT NULL,
  `Date` date NOT NULL,
  PRIMARY KEY (`at_id`)
)

Dirie您需要做的是將每一行中的數據放入表格https://www.w3schools.com/tags/tag_form.asp中 選擇單選按鈕時,將觸發帶有jquery / javscript的提交。 或者,有一個名為“ Present”的按鈕/輸入(提交),它將為您提交表單。

另一個選擇是使用ajax( https://www.w3schools.com/xml/ajax_php.asp )。 我個人認為,提交表格比較容易。

我懷疑您期望答案能為您提供代碼,但是我不確定您是否會找人為您編寫解決方案。 在線上有許多代碼示例,介紹如何創建HTML表單,提交數據並將表單中的詳細信息保存到數據庫中。 祝你好運!

用html創建表單很容易。 只需將要提交的數據放入表單元素即可。 在此示例中, period被置於具有隱藏屬性的input tag ,我們從您的查詢中分配值。

<form method="POST" action="saveattendance.php">
<table>     
        <?php while($row = $db->fetch(PDO::FETCH_ASSOC)): ?>
            <input type="hidden" name="period" value="<?php echo $row['Period'] ?>">
        <tr>
            <td><?php echo $row['student_name']; ?></td>
            <td><?php echo $row['Passport_no'] ?></td>
            <td><?php echo $row['Teacher'] ?></td>
            <td><?php echo $row['Class'] ?></td>
            <td><?php echo $row['Period'] ?></td>
            <td>Present<input required type="radio" name="attendance[<?php echo $row['stud_id'] ?>]" value="Present" checked>
                Absent<input required type="radio" name="attendance[<?php echo $row['stud_id']; ?>]" value="Absent">
            </td>
        </tr>
          <?php endwhile; ?> 
        <tr>
            <td colspan="6"><input type="submit" name="attendanceData" value="Save"></td>
        </tr>
  </table>
</form>

為了將表單保存到數據庫,我們需要一個數據庫連接,這里我使用PDO mysql。

saveattendance.php

<?php 
require_once 'dbconnect.php';//contains PDO connection script

if(isset($_POST['attendanceData'])){
    $today = date('Y-m-d');
    $period = $_POST['period'];
    foreach($_POST['attendance'] as $key =>$val){       
        $studentid = $key;
        $status = $val;

        if(!empty($studentid)){
            try{
                $dbh->beginTransaction();
                $stmt = $dbh->prepare("INSERT INTO `attendance` (`stud_id`,`Period`, `Status`,`Date`)VALUES(?,?,?,?)");
                $stmt->execute(array($studentid, $period, $status, $today));
                $update = $stmt->rowCount();
                $dbh->commit();
            }catch(PDOException $e){
                $dbh->rollBack();
                $error = $e->getMessage();//Print the error
                exit;
            }
        }else{
            //Student ID not there
        }
    }

}else{
    //Form not submitted, display other useful info
}
?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM