从多个文本字段获取输入到数组并插入到db字段

时间:2015-01-03 10:33:40

标签: php mysql arrays dreamweaver

我有一张订单。它有10个文本字段供用户输入数量。如何将输入存储到数组并插入到db字段(由逗号分隔)?注意:不需要在所有文本字段上输入。例如,输入是1,2,3,4 ..它应该出现在db字段1,2,3,4

示例和说明会很棒。我对此比较陌生。

3 个答案:

答案 0 :(得分:3)

所以,我们假设您有一个包含四个文字字段的表格 - fieldOnefieldTwofieldThreefieldFour

您的html form应如下所示(我跳过不相关的部分)。

<form method="POST">
    <textarea name='data[fieldOne]'></textarea>
    <textarea name='data[fieldTwo]'></textarea>
    <textarea name='data[fieldThree]'></textarea>
    <textarea name='data[fieldFour]'></textarea>
</form>

现在,您的PHP代码:

$data = $_POST['data']; // PHP converts names like data[fieldOne] into arrays.

foreach ($data as $key => $value) {
    $fieldNames[] = "`{$key}`";    //field names for our insert statement - `fieldOne`, `fieldTwo`, etc...
    $values[":{$key}"] = strip_tags($value); 
}

$stmt = $pdo->prepare("INSERT INTO `tableName` (".implode(', ', $fieldNames).") VALUES (".implode(", ", array_keys($values)).")"; // If you're not using PDO and prepared statements you're doing it wrong, so i absolutely recommend you learning that if you haven't already.
$stmt->execute($values);

这应该可以解决问题。 请注意,使用预准备语句可以使您无需手动转义数据。但是,如果您担心XSS次攻击,则仍应使用strip_tags分机filter

答案 1 :(得分:2)

HTML

<form action="my_page_that_processes_orders.php" method="post">
  <input type="text" name="order[product1]" />
  <input type="text" name="order[product2]" />
  <input type="text" name="order[product3]" />
  <input type="text" name="order[product4]" />
  <input type="submit" />
</form>

my_page_that_processes_orders.php

$data = $_POST["order"];// Advisable to perform checks for security reasons (not going to do it)

$aux = '';
foreach($data as $product => $qty) {
 // Do whatever you please with the data.
 $aux .= "$product $qty,"; // For instance.
}

$string_to_insert = rtrim($aux, ",");
// Insert it in DB or do more processing stuff.

希望它有所帮助。

亲切的问候。

答案 2 :(得分:0)

假设这是你的形式:,如果你只是打扰订单数组,就像对应的密钥一样。

<form action="submit.php" method="post">
  <input type="text" name="order[]" />
  <input type="text" name="order[]" />
  <input type="text" name="order[]" />
  <input type="text" name="order[]" />
  <input type="submit" />
</form>

你的 submit.php:

     <?php 
       $data ="";
  foreach($_POST["order"] as $key=>$val){
    if(isset($val) && $val !="")
      $data.=$val.",";
  }
   $data=trim($data);
    echo $data;// use data 

注意:不要使用mysql而是使用PDO或mysqli。不推荐使用mysql。