【问题标题】:What is the best way to add array into Mysql将数组添加到Mysql的最佳方法是什么
【发布时间】:2011-04-17 07:24:12
【问题描述】:

我正在制作一个包含 5 个产品的简单订单表格,可以使用用户的复选框来选择它们,然后我想将访问者选择的产品添加到 mysql 数据库中,但是如您所知,例如 INSERT array[ ] 不工作!

我用 php 做了一个 FOR stamtment,但它只添加了数组的最后一个产品!

我知道一种序列化和反序列化 php 函数的方法,但我不太喜欢它!

感谢您的帮助。

代码如下:

$firstname = $_POST['firstname'];
$lastname = $_POST['lastname'];
$products = $_POST['products'];
$email = $_POST['email'];

echo '<h3>Sehr geehrte/er '.$firstname.' '.$lastname.'</h3>';


  if(empty($products)) 
  {
    echo("Keine bestellung.");
  } 
  else 
  {
    $N = count($products);

    echo("Sie haben $N produkte bestellt:<br /> ");
    for($i=0; $i < $N; $i++)
    {
      echo $order = ($products[$i]);    
    }
    $query = "INSERT INTO salt_orders (products, vorname, nachname, date)
        VALUES ( '$order', '$firstname', '$lastname', NOW())";
    $result = mysql_query($query);
  }

【问题讨论】:

标签: php mysql


【解决方案1】:

创建一个单独的表格来引用您的产品及其详细信息。然后创建另一个表来保存订单行项目。

当客户下订单时,插入一个新行,在行项目表中引用他们购买的产品及其适用的订单号。在 salt_orders 中创建一个包含订单号的记录。

然后,您可以通过将它们连接在一起以检索完整的订单详细信息来将其全部恢复。

将多个产品连续添加到一个单元格会让您感到非常困难,因此我建议您按照上述方法规范化您的数据。

这只是一个简单的示例,根据您的需要,它可能会更复杂。

【讨论】:

    【解决方案2】:

    您可以使用它来连接一个字段中的产品:

    $order = "";
    for($i=0; $i < $N; $i++)
    {
      echo $order .= $products[$i] . "," ;    
    }
    $order = substr($order ,0 ,strlen($order )-1 ) ;
    

    但您应该真正考虑订单表的规范化,正如所有其他人所建议的那样。

    【讨论】:

      【解决方案3】:

      是的,规范化是您可能缺少的。完成后,将处理插入规范化表的函数添加到数据库中。 这样,数据的逻辑与数据保持一致。

      【讨论】:

        猜你喜欢
        • 2014-12-17
        • 1970-01-01
        • 2018-08-10
        • 1970-01-01
        • 2011-11-21
        • 2014-04-28
        • 2013-02-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多