如何将表id传递给PHP中的另一个表

时间:2015-08-08 06:12:27

标签: php mysql sql row

02个表名为itemcustomer

item(item_id, item_name) customer(cus_id, iid, cus_name)

我只是试图将item_id的{​​{1}}存储到item中的iid。 但它总是显示customer值。 我的数据库是null

这是我的PHP代码

item_sales

2 个答案:

答案 0 :(得分:1)

它不起作用的原因是你试图将iid select保存到iid字段中,我猜测customer中的iid字段是一个数字类型字段,比如INT - 使用POST变量就像这样,您将保存SELECT的文本而不是val。

要解决此特定问题需要做的是设置"值"在每个选择选项上。您已经设置了ID,但这里没有真正的帮助。

<select name="iid">
    <?php
    $sql = mysql_query("SELECT * FROM item");
    mysql_select_db($database,$con);
    while($sqlv = mysql_fetch_array($sql)) 
    { ?>
        <option value="<?php echo $sqlv['item_id']; ?>"><?php echo $sqlv['item_name']; ?></option>
    <?php } ?>
</select>

除此之外,您的代码非常危险。我建议你不要使用原来的mysql函数,1)它们不能为恶意用户提供任何真正的保护,2)它们很快就会从PHP支持中删除。

请参阅此SO文章,了解如何从PHP代码中替换mysql功能:How can I prevent SQL injection in PHP?

该文章也可以帮助您了解代码提供的危险。

答案 1 :(得分:0)

正确的代码如下:

<html>
<title></title>
<head></head>
<body>

<?php 
$hostname = "localhost";
$database = "item_sales";
$username = "root";
$password = "";

$con = mysql_pconnect($hostname, $username, $password);

error_reporting(0);

?>

<form action="index.php" method="post" enctype="multipart/form-data">

<p>Customer Name : <input type="text" name="cus_name" /><br/><br/>  </p>
<p>Select an Item: 
<select name="iid">
        <?php
            $sql = mysql_query("SELECT * FROM item");
            mysql_select_db($database,$con);
            while($sqlv = mysql_fetch_array($sql)) 
            { ?>
                <option value="<?php echo $sqlv['item_id']; ?>"><?php echo $sqlv['item_name']; ?></option>
            <?php } ?>
    </select>
    </p>

  <?php

  if(isset($_POST['submit']))
  {
        $sql2 = "SELECT * FROM item";
        mysql_select_db($database,$con);
        $mydata = mysql_query($sql2);

        $cus_name = $_POST['cus_name'];
        $iid = $_GET['item_id'];


        $sql3 = "INSERT INTO customer (cus_id, iid, cus_name) VALUES ('', '$_POST[iid]', '$cus_name')";
        mysql_query($sql3);

    }
    ?>



    <input type="submit" name="submit" value="Add Sale" />
 </form>


 </body>
 </html>