2017-03-21 2 views
-1

Ich versuche, den in einer Dropdown-Liste ausgewählten Primärschlüssel als Fremdschlüssel für eine neue Tabelle einzufügen. Ich benutze PHP und MySQL.Primärschlüssel als Dropdown-Liste als Fremdschlüssel in neuer Tabelle verwenden

Ich bekomme immer notice:undefined index. Ich habe bereits 3 Tabellen erstellt (Typ, Marke und Modell) Modell Tabelle besteht aus Fremdschlüssel aus dem Typ und Markenmodell.

HTML/PHP, dass ich die Daten einfügen verwendet:

<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 Aktion, die ich verwendet:

<?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(); 
?> 

Der Fehler, den ich

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

in Ihrem 'html, die ich verwendet, um die Daten einzufügen:' Code, den Sie haben keine Feldform mit 'name = "id_vehicleType"', nur Sie habe 'value =" id_vehicleType "' – JapanGuy

+0

ich schlage vor, dass Sie PHP-Syntax zuerst lernen. nicht so schwer und dauert nicht lange – JapanGuy

+0

Ich würde auch vorschlagen, mit einem PHP-Framework zu helfen, organisieren Sie Ihren Code schön in einem MVC (Modell, Ansicht und Controller). Frameworks bieten außerdem Zugriff auf vordefinierte Bibliotheken, die Aufgaben wie den Datenbankzugriff sehr einfach machen. Laravel und Cakephp sind beliebte, die ich vorher benutzt habe. –

Antwort

0

bekam Bitte versuchen Sie die Code unten, dass ich richtig, Sie bekommen, wo Sie Fehler machen. Ich hoffe, so

form role="form-horizontal" action="addVehicleModel.php" method="post"> 
Fahrzeugmodell:

<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> 


Senden Schließen

<?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(); 
?> 
Verwandte Themen