Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何使用mysqli在表中的特定字段中插入多个值?_Php_Mysql_Mysqli_Database Normalization_Multivalue - Fatal编程技术网

Php 如何使用mysqli在表中的特定字段中插入多个值?

Php 如何使用mysqli在表中的特定字段中插入多个值?,php,mysql,mysqli,database-normalization,multivalue,Php,Mysql,Mysqli,Database Normalization,Multivalue,我正在做一个项目,我有这样一个场景: 我的表中有许多字段: table_name : transaction_tbl -id -name -description -ref_number : text(datatype) 在此插入我的代码: $sql = "INSERT INTO transaction_tbl (`name`,`description`,`ref_number`) VALUES ('$name','$desccription',$ref_number)"; if (

我正在做一个项目,我有这样一个场景: 我的表中有许多字段:

table_name : transaction_tbl
-id
-name
-description
-ref_number : text(datatype)
在此插入我的代码:

    $sql = "INSERT INTO transaction_tbl (`name`,`description`,`ref_number`) VALUES ('$name','$desccription',$ref_number)";

if ($conn->query($sql) === false){
                    trigger_error('Wrong SQL: ' . $sql . 'Error: ' . $conn->error , E_USER_ERROR);
                }else {
                    echo "Successful ! Data is inserted in database ^__^" ;

                }
由于名称本身是参考号或参考号,所以有一段时间我会有很多参考号,如果它有多个值,我怎么能让它插入? 谢谢:)

更新:

我想要这样的东西:

name    description            ref_number
bag     to be use               10359435846 
                               05438547656
                               035848576

为了什么?为什么不插入一个新行,该行的名称和描述相同,引用号不同

但如果您愿意,您可以将新的参考号与现有的连接起来

首先检查它是否已经存在 获取其值,然后连接新的参考号。。 如果不存在,请插入新行

$sql = "SELECT `ref_number` FROM `transaction_tbl`
WHERE `name`='$name' AND `description`='$description'";


$query = mysql_query($sql);
if(mysql_num_rows($query) > 0)
{
    $row = mysql_fetch_array($query);
    $new_ref = $row['ref_number'] . '|' . $ref_number;
    $upd = "UPDATE `transaction_tbl` SET `ref_number`='$new_ref'
            WHERE `name`='$name' AND `description`='$description'";
}
else
{
    $ins = "INSERT INTO transaction_tbl (`name`,`description`,`ref_number`)
            VALUES ('$name','$desccription',$ref_number)";
    mysql_query($ins);
}

在一个单元格中有多个值不是一个好的做法(除非有严重的原因,否则不应该这样做)。它违反了基本的数据库规则。只需将其拆分为两个表,并分配外键将它们链接起来

学习数据库规范化。有很多例子。在这里,您需要将您的非规范化(0NF)表至少设置为第一个规范化级别(1NF)。但建议至少将其标准化到第三级

谷歌数据库规范化教程。根据你们的要求,下面的图片会给你们一个想法(字段名称和你们的问题不一样)

首先将值插入表1(成员表),并在php中获取插入id use
$iid=mysqli\u insert\u id()

接下来,将多个值作为单独的行添加到第二个表(数据库表)以及第一步中获得的主键中


请记住,这不是一个教程网站。在网上查找更多信息。

使用一个单独的表,每个事务和参考号各有一行。这就是所谓的连接表。我该怎么做?你能举个例子吗?一个单元格中不能有多个VAL。它违反了基本的数据库规则。只需将其拆分为两个表,并使用外键将thm链接起来。学习数据库规范化。有很多例子。在这里,您需要将您的未规范化(0nF)表至少设置为第一个规范化级别(1nF)。但建议至少将其标准化到第三级。是的,除了制作两张标准化的表格之外,没有其他方法了吗?那我就用explode怎么样?它会给你带来很多麻烦的。很多。。。。性能问题。表1链接问题。在使用这种结构创建一些高级查询时,您可能会在某个时候被绊倒。如果我只使用explode呢?我怎样才能做到这一点?我也在使用mysqlinever来做到这一点。使用两个单独的表格。这不是一个好的做法。。像kuma DK。。只需使用另一行/表格。。但是是的。。您只需使用explode,使用“|”,不要否决bcuz我刚才回答了他想做的事:)