2017-03-21 10 views
-1

ドロップダウンリストで選択したプライマリキーを新しいテーブルの外部キーとして挿入しようとしています。私はPHPとMySQLを使用しています。新しいテーブルの外部キーとしてドロップダウンリストとして選択されたプライマリキーを使用

私はnotice:undefined indexを得続けます。私はすでに3つのテーブル(タイプ,ブランドモデル)を作成しました。モデルテーブルは、タイプとブランドモデルからの外部キーで構成されています。

私はデータを挿入するために使用されるHTML/PHP:私が使用

<div class="modal fade" id="addVehicleModel" role="dialog"> 
    <div class="modal-dialog"> 
    <div class="modal-content"> 
     <div class="panel panel-danger"> 
     <div class="panel-heading"> 
      <h4>Add New Vehicle Model</h4> 
     </div> 
     <div class="panel-body"> 
      <form role="form-horizontal" action="addVehicleModel.php" method="post"> 
      <div class="form-group"> 
       <label>Vehicle Model:</label> 
       <input class="form-control" type="text" id="vehicleModel" name="vehicleModel" placeholder="Enter New Vehicle Model" /> 
      </div> 
      <div class="form-group"> 
       <label for="vehicleType">Vehicle Type:</label> 
       <div> 
       <select class="form-control" onchange="change_vehicleType()" name="vehicleType" id="vehicleTypeID"> 
        <option value="">Select Vehicle Type</option> 
        <?php 
        $res=mysqli_query($link,"Select * from vehicleType"); 
        while ($row=mysqli_fetch_array($res)) { ?> 
        <option value=<?php echo $row[ 'id_vehicleType'];?>> 
         <?php echo $row['vehicle_Type'];?> 
        </option> 
        <?php 
        } ?> 
       </select> 
       </div> 
      </div> 
      <div class="form-group"> 
       <label for="vehicleType">Vehicle Brand:</label> 
       <div> 
       <select class="form-control" onchange="change_vehicleBrand()" name="vehicleBrand" id="vehicleBrandID"> 
        <option value="">Select Vehicle Brand</option> 
        <?php 
        $res=mysqli_query($link,"Select * from vehicleBrand"); 
        while ($row=mysqli_fetch_array($res)) { ?> 
        <option value="<?php echo $row['id_vehicleBrand'];?>"> 
         <?php echo $row['vehicle_Brand'];?> 
        </option> 
        <?php 
        } ?> 
       </select> 
       </div> 
      </div> 
      <br> 
      <button type="submit" class="btn btn-danger">Submit</button> 
      <button type="submit" class="btn btn-primary" data-dismiss="modal">Close</button> 
      </form> 
     </div> 
     <!--class panel body end--> 
     </div> 
     <!--class panel danger end--> 
    </div> 
    <!--class modal content end--> 
    </div> 
    <!--class modal dialog end--> 
</div> 
<!--class modal ADD VEHICLE MODEL end--> 

PHPのアクション:

<?php 
$mysqli = new mysqli("localhost", "root", "root", "vms"); 
if ($mysqli === false) { 
    die("ERROR: Could not connect. " . $mysqli->connect_error); 
} 
$vehicleModel = $mysqli->real_escape_string($_REQUEST['vehicleModel']); 
$vehicleTypeID = $mysqli->real_escape_string($_REQUEST['id_vehicleType']); 
$vehicleBrandID = $mysqli->real_escape_string($_REQUEST['id_vehicleBrand']); 
$sql   = "INSERT INTO vehiclemodel (vehicle_Model, id_FKvehicleType,  id_FKvehicleBrand) VALUES ('$vehicleModel', '$id_vehicleType', '$id_vehicleBrand')"; 
if ($mysqli->query($sql) === true) { 
    echo "Records inserted successfully."; 
} else { 
    echo "ERROR: Could not able to execute $sql. " . $mysqli->error; 
} 
$mysqli->close(); 
?> 

私は

Notice: Undefined index: id_vehicleType in 
C:\xampp\htdocs\vms\addVehicleModel.php on line 13 

Notice: Undefined index: id_vehicleBrand in 
C:\xampp\htdocs\vms\addVehicleModel.php on line 14 

Notice: Undefined variable: id_vehicleType in 
C:\xampp\htdocs\vms\addVehicleModel.php on line 17 

Notice: Undefined variable: id_vehicleBrand in 
C:\xampp\htdocs\vms\addVehicleModel.php on line 17 ERROR: Could not 
able to execute INSERT INTO vehiclemodel (vehicle_Model, 
id_FKvehicleType, id_FKvehicleBrand) VALUES ('Saga', '', ''). Cannot 
add or update a child row: a foreign key constraint fails 
(`vms`.`vehiclemodel`, CONSTRAINT `vehiclemodel_ibfk_1` FOREIGN KEY 
(`id_FKvehicleType`) REFERENCES `vehicletype` (`id_vehicleType`))Yes, 
vehicleModel is setN0, id_vehicleBrand is not setN0, id_vehicleType is 
not set 
+0

を提出してください:'あなたは '名= "id_vehicleType"'、あなただけですべてのフォームフィールドを持っていないコードをhave value = "id_vehicleType" ' – JapanGuy

+0

私はあなたが最初にPHPの構文を学ぶことをお勧めします。それほど難しくはありません。 – JapanGuy

+0

MVC(モデル、ビュー、コントローラ)にコードをうまく整理するためのPHPフレームワークの使用をお勧めします。フレームワークはまた、データベースアクセスのようなタスクを非常に簡単にする素敵なあらかじめ書かれたライブラリへのアクセスを提供します。 LaravelとCakephpは私が以前使ったことのある人気のあるものです。 –

答えて

0

を得たエラーは試してみてください下のコードを正しく入力すると、間違ったところに移動します。私はそう願って

form role="form-horizontal" action="addVehicleModel.php" method="post"> 
車両型式:

<label for="vehicleType">Vehicle Type:</label> 
<div> 
     <select class="form-control" onchange="change_vehicleType()" name="vehicleType" id="vehicleTypeID"> 
<option value="">Select Vehicle Type</option> 

     <option value="1">hello</option> 

     </select> 

<label for="vehicleType">Vehicle Brand:</label> 
<div> 
     <select class="form-control" onchange="change_vehicleBrand()" name="vehicleBrand" id="vehicleBrandID"> 
      <option value="">Select Vehicle Brand</option> 
         <option value= "2" >BMW</option> 
     </select> 


私はデータを挿入するために使用し、あなたの `HTML内 閉じる

<?php 
$mysqli = new mysqli("localhost", "root", "root", "vms"); 

if($mysqli === false){ 
die("ERROR: Could not connect. " . $mysqli->connect_error); 
} 




$vehicleModel = $mysqli->real_escape_string($_REQUEST['vehicleModel']); 
$vehicleTypeID = $mysqli->real_escape_string($_REQUEST['vehicleType']); 
$vehicleBrandID = $mysqli->real_escape_string($_REQUEST['vehicleBrand']); 


    $sql = "INSERT INTO vehiclemodel (vehicle_Model, id_FKvehicleType,id_FKvehicleBrand) VALUES ('$vehicleModel', '$vehicleTypeID', '$vehicleBrandID')"; 
if($mysqli->query($sql) === true){ 
echo "Records inserted successfully."; 
    } else{ 
echo "ERROR: Could not able to execute $sql. " . $mysqli->error; 
} 



    $mysqli->close(); 
?> 
関連する問題