使用外键从下拉列表中将数据从一个表插入另一个表

时间:2013-04-25 01:20:22

标签: php forms foreign-keys

好的,所以我想在我的数据库的区域表中插入/更新一个新区域,一个区域应该链接到一个建筑物(buildingID是区域表中的fk),此时我已经制作了一个表格我可以进入与建筑物链接的新区域,但是我必须手动输入buildingID,我想要的是建筑物表格中的所有建筑物名称都显示在下拉框中,以便我可以选择它,而不是在添加新区域时必须输入buildingID。

希望这是有道理的,非常感谢任何可以帮助我的人!

?php
$con = mysql_connect ("localhost","user","pass");
if (!$con){
die("can not connect: " . mysql_error());
}
mysql_select_db("dbname",$con);

if(isset($_POST['update'])){
$updatequery = "UPDATE zones SET Zonename='$_POST[zonename]', Zonenumber='$_POST[zonenumber]', Zonecapacity='$_POST[zonecapacity]', buildingID='$_POST[buildingid]'WHERE zoneID='$_POST[hidden]'";
mysql_query($updatequery, $con);
};

if(isset($_POST['add'])){
$addquery = "INSERT INTO zones (Zonename, Zonenumber, Zonecapacity, buildingID) VALUES       ('$_POST[uname]', '$_POST[ucapacity]', '$_POST[unumber]', '$_POST[ubuilding]')";
mysql_query($addquery, $con);
};


$sql = "SELECT * FROM zones";

$myData = mysql_query($sql,$con);
echo "<table>
<tr>
<th> </th>
<th>Zone Name</th>
<th>Zone Number</th>
<th>Zone Capacity</th>
<th>Building ID</th>
</tr>";
while ($record = mysql_fetch_array($myData)){
echo "<form action=addeditzone.php method=post>";
echo " <tr>";
echo "<td>" . $record['zoneID'] . " </td>";
echo "<td>" . "<input type=text name=zonename value='" . $record['Zonename'] . "' </td>";
echo "<td>" . "<input type=text name=zonenumber value='" . $record['Zonenumber'] . "' </td>";
echo "<td>" . "<input type=text name=zonecapacity value='" . $record['Zonecapacity'] . "'  </td>";
echo "<td>" . "<input type=text name=buildingid value='" . $record['buildingID'] . "'    </td>";
echo "<td>" . "<input type=hidden name=hidden value=" . $record['zoneID'] . " </td>";
echo "<td>" . "<input type=submit name=update value=update" . " </td>";
echo "</form>";
}
echo "<form action=addeditzone.php method=post>";
echo "<tr>";
echo "<td><td><input type=text name=uname></td>";
echo "<td><input type=text name=unumber></td>";
echo "<td><input type=text name=ucapacity></td>";
echo "<td><input type=text name=ubuilding></td>";
echo "<td>" . "<input type=submit name=add value=add>" . " </td>";
echo "<tr>";
echo "</form>";
echo "</table>";
mysql_close($con);

?>

1 个答案:

答案 0 :(得分:0)

以下是用数据库表数据填充Dropbox的代码。

<?php
    $con = mysql_connect ("127.0.0.1","root");
    if (!$con){
        die("can not connect: " . mysql_error());
    }
    mysql_select_db("examples",$con);
if (isset($_POST['submit'])){




    $sql = "INSERT INTO zones (Zonename,Zonecapacity,buildingID) VALUES
    ('$_POST[Zonename]','$_POST[Zonecapacity]','$_POST[BuildingID]')";
    $inserted=mysql_query($sql,$con);
    if($inserted) {
        echo "New Zone succesfully entered";
    } else {
        echo "fail ". mysqli_error($con);
    };
} else {
    echo "<form action='insertzone1.php' method='post'>
            Insert New Zone:<br><br>
            Zone Name:<br><input type='text' name='Zonename'><br><br>
            Zone Capacity:<br><input type='int' name='Zonecapacity'><br><br>
            Building:<br>";
    $sql = "select * from building";
    $res = mysql_query($sql,$con);
    echo mysql_error($con);
    echo "<select name='BuildingID'>";
    while ($row = mysql_fetch_array($res)){

        echo "<option value=" . $row['buildingID'] . ">". $row['buildname'] . "</option>";
    }
    echo "</select><br><input type='submit' name='submit'>
            </form>";


    mysql_close($con);
};