php - 2 个不同的值存储在数据库的一列下

标签 php mysql sql drop-down-menu mysqli

我有一个类别表

id  catname
1     C1
2     C2

从下拉菜单中,我试图将所选值的名称和 ID 带到后端并保存在数据库中。

下拉菜单的代码是:
<select name="catname">
    <?php
        require 'connection.php';
            $sql = "SELECT * FROM category";
            $result = mysqli_query($con, $sql);

            if (mysqli_num_rows($result) > 0) {
                while($row = mysqli_fetch_assoc($result)) 
                    {
                        $catname=$row["catname"];
                        $catid=$row["id"];

    ?>

        <option value="<? echo $catname;?> <? echo $catid;?>"><? echo $catname;?></option>

                    <?}
            }?>
</select>

后端代码:
<?php
require 'connection.php';

$subcatname = mysqli_real_escape_string($con, $_POST['subcatname']);
$catname = mysqli_real_escape_string($con, $_POST['catname']);
$catid = mysqli_real_escape_string($con, $_POST['catid']);

$sql="INSERT INTO subcategory(catname,catid,subcatname) VALUES ('$catname','$catid','$subcatname')";

if (!mysqli_query($con,$sql)) 
    {
        die('Error: ' . mysqli_error($con));
    }
mysqli_close($con); 
?>

存储值后子类别表的 View 应该是这样的
id  catname   catid  subcatname
1      C2        2     S1

问题是当我选择一个类别时,catname 和 catid 的值在相同的参数下。例如。数据库中的值是这样存储的
id    catname   catid  subcatname
1      C2 2           S1

谁能告诉我如何以正确的方式做到这一点

最佳答案

您应该将类​​别名称和类别 ID 存储在下拉列表中,然后在传递给查询之前拆分。这样做:

设置您的选项,如:

<option value="<? echo $catname.'-'.$catid;?>"><? echo $catname;?></option>

因此,您在 post 中获得该值,然后拆分如下:
$catdetail = mysqli_real_escape_string($con, $_POST['catname']);
list($catname, $catid) = explode('-', $catdetail); 

并传递两个变量 $catename & $catidquery .

让我知道以获得更多帮助。

关于php - 2 个不同的值存储在数据库的一列下,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29026243/

相关文章:

php - AJAX POST JSON 数组 Javascript NOT JQUERY

PHP MYSQL 登录脚本 session 不起作用

php - Zend : Two Objects, 一行

php - MySQL - 如何选择具有最大日期的行

PHP&SQL 选择最高分

python - 如何使Python中的%s成为变化变量

php - 按修改时间对文件列表进行排序(Google Drive API)

mysql - 使用 NodeJS 和 KnexJS 同步 MySQL 查询

c++ - 数据库表在内存中表示的容器

sql - 两列总计不起作用