2017-09-01 8 views
0

複数の外部キーを持つテーブルにデータを挿入しようとすると、このフォームはナビゲーション上にIDを持っています。私はいくつかの他の選択や入力テキストを持っているselectとURL IDを使用してデータベースに挿入

<form method="post" action="backend_valuechain.php?id=<?php echo $_GET['id'] ?> 
    <label>Nom du segment</label> 
    <input type="text" class="form-control input-lg" id="segmentname"/> 

    <label>My Select Name</label> 
    <select id="select1"> 
     <?php 
      foreach ($pdo->query($typosegment = 'SELECT ID_SEGMENT_VC_TYPO, SEGMENT_VC_TYPOLOGY FROM segment_vc_typo;') as $row) { 
       echo '<option name="' . $row['SEGMENT_VC_TYPOLOGY'] . '" value="' .$row['ID_SEGMENT_VC_TYPO'] . '"> ' . $row['SEGMENT_VC_TYPOLOGY'] . '</option>'; } ?> 
    </select> 
...... 

は、だから、私は同じページに行動して(私は値を挿入する表にリンクされている)別のテーブルから値を選択し、フォームを作成しました私の質問を読みやすくするためにサンプルを取るだけです。フォームを作成したら、データをデータベースに挿入する予定です。

<?php 
    try{ 
     $vcNewSegment = "INSERT INTO segment_vc (ID_VC,SEGMENT_VC_NAME,ID_SEGMENT_VC_TYPO) VALUES (:id,:segmentname,:typosegment)"; 

     $stmt = $pdo->prepare($vcNewSegment); 
     $stmt->bindParam(':id', $_GET['id'], PDO::PARAM_INT); 
     $stmt->bindParam(':segmentname', $_REQUEST['segmentname'], PDO::PARAM_STR); 
     $stmt->bindParam(':typosegment', $_REQUEST['typosegment'], PDO::PARAM_INT); 
     $stmt->execute(); 
     echo "OK !"; 
    } 
    catch(PDOException $e){ 
     die("ERROR: Could not able to execute $vcNewSegment. " . 
      $e->getMessage()); 
    } 
    unset($pdo); 
?> 

Iは、フォームを介してデータを挿入すると、私はテーブルの内部の入力が表示されていないが、「NULL」値(Iは関連しないいくつかの列を削除し)、この表に挿入されている:

CREATE TABLE `segment_vc` (
    `ID_SEGMENT_VC` int(20) NOT NULL, 
    `ID_VC` int(20) DEFAULT NULL, 
    `ID_SEGMENT_VC_TYPO` int(20) DEFAULT NULL, 
    `SEGMENT_VC_NAME` varchar(90) DEFAULT NULL, 
) ENGINE=MyISAM DEFAULT CHARSET=latin1; 

ID_SEGMENT_VCは、主キー ID_VCは、外部キー(それがURLに表示されます)です..です ID_SEGMENT_TYPOは、私は$_REQUEST['typosegment']はどこから来るのかわからないんだけど、また外部キー

答えて

0

です。

<select id="select1">の値は、$_POST['select1']でも得られます。

+0

Davidsの '$ _REQUEST ['typosegment']'はあなたの '$ _POST ['select1']'だと思われます;-) selectオプションの値はinsert文でも使われている "ID_SEGMENT_VC_TYPO" 'backend_valuechain.php'にあります。 –

+0

それは正しいです:タイプセグメンテーションはselect1です... POSTでREQUESTを変更しても問題は変わりません...実際には私はselectオプションに入れたテキストを挿入したくありませんが、オプション: ..この場合、テーブルに整数として "1"を挿入したいのですが... – davidvera

関連する問題