使用select和URL ID

时间:2017-09-01 18:51:51

标签: php mysql sql pdo prepared-statement

当我尝试在具有多个外键的表上插入数据时。此表单在导航中有一个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);
?>

当我通过表单插入数据时,我看不到表中的输入,但是&#34; NULL&#34;值将插入此表中(我删除了一些不相关的列):

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也是外键

1 个答案:

答案 0 :(得分:0)

我不确定$_REQUEST['typosegment']来自哪里。

虽然<select id="select1">可以获得$_POST['select1']的价值。