首页 > 解决方案 > mysqli 将表单数据插入两个表

问题描述

用户在表格中输入玩家信息(一次 1-12 名玩家)

$player 查询:检查重复玩家并输入新玩家或更新玩家表中已有的玩家。

$pid 查询:获取匹配玩家的 ID ($playerID)

$roster 查询:将名册信息插入名册表 - schoolID、playerID、制服,以及他是否在校队级别

$player 查询效果很好!
$pid 查询...在获取 $playerID 方面做得很好(我将其回显)

我的问题出在哪里,我似乎无法让 $roster 查询识别 $playerID。

$schoolID = $_POST['school']; 
$varsity = $_POST['varsity']; 
$season = $_POST['season'];

        $player = $con->prepare("INSERT INTO a_players(schoolID,nameFirst,nameLast,feet,inches,grade,position,varsity) 
        VALUES (?,?,?,?,?,?,?,?)
        ON DUPLICATE KEY UPDATE
        feet = ?,
        inches = ?,
        varsity = ?
        ");
        $player->bind_param('sssssssssss',$schoolID,$fname,$lname,$feet,$inches,$grade,$position,$varsity,$feet,$inches,$varsity);
    
    
        $pid = $con->prepare("SELECT id FROM a_players WHERE nameFirst = ? AND nameLast = ? AND schoolID = ?");
        $pid->bind_param('sss',$fname,$lname,$schoolID);
        
            
        $roster = $con->prepare("INSERT INTO a_rosters(schoolID, playerID, uniform, varsity, season) VALUES (?,?,?,?,?)");
        $roster->bind_param('sssss', $schoolID, $playerID, $uniform, $varsity, $season);
    

    
        foreach ($_POST['uniform'] as $k => $uniform)  {
            $fname = $_POST['nameFirst'][$k];
            $lname = $_POST['nameLast'][$k];
            $feet = $_POST['feet'][$k];
            $inches = $_POST['inches'][$k];
            $grade = $_POST['grade'][$k];
            $position = $_POST['position'][$k];
            
            $name = "$fname $lname";
            $slug = strtolower("$fname-$lname");
            
          
            $taxonomy = "post_tag";
            
            
            $player->execute();
                
                echo '<div>' .$fname,$lname,$schoolID .'</div>';

                $pid->execute();
                $pid->bind_result($playerID);
                $pid->fetch();

                
                echo '<div>playerID: ' . $playerID .' value of row: '. $row .'</div>';

            
            $roster->execute();

$pid->execute 周围的回声只是为了查看正在传递的内容。一旦它工作,那些被删除。

标签: phpmysqlinsertprepared-statement

解决方案


推荐阅读