将表单中的多个字段插入数据库中的单个字段

时间:2013-10-13 05:45:33

标签: php mysql database wamp

我使用以下代码要求用户输入他的名字,中间名和姓氏。

<label>
  <span>First name</span>
  <input type="text" size ="25" placeholder="Your Name" class="input_text"onfocus="if(this.value==this.defaultValue)this.value=''"    
    onblur="if(this.value=='')this.value=this.defaultValue" 
    value="" name="name" id="name"/>
</label>

<label>
  <span> Middle Name</span>
  <input type="text" size ="25 class="input_text" placeholder="Father's name"  name="middle name" onfocus="if(this.value==this.defaultValue)this.value=''"    
    onblur="if(this.value=='')this.value=this.defaultValue" 
    value="" id="middle name"/>
</label>

<label>
  <span>Last Name</span>
  <input type="text" size ="25" class="input_text" placeholder="Surname"  name="last name" onfocus="if(this.value==this.defaultValue)this.value=''"    
    onblur="if(this.value=='')this.value=this.defaultValue" 
    value="" id="last name"/>
</label>

我希望所有3个名字,中间名和姓都进入一个名为数据库名称的单一列。

仅供参考我正在使用wamp并在phpmyadmin中创建了我的数据库。我想使用php脚本将所有3个字段插入名称。我该怎么办?

4 个答案:

答案 0 :(得分:1)

您可以在将字段插入数据库之前连接这些字段;

$name = '';
if(isset($_POST['first_name'])){
    $name .= $_POST['first_name'];
}
if(if(isset($_POST['middle_name'])){
    //add a space before
    $name .= ' ' .$_POST['middle_name'];
}
if(isset($_POST['last_name'])){
    //add a space before
    $name .= ' ' . $_POST['last_name'];
}

//现在你在$ name变量中有你的全名,你可以将它插入数据库

注意: 您不能在表单输入名称中使用空格。如果您想要两个单词,则应使用下划线。

<强>错误:

<input type="text" name="middle name">

<强>正确:

<input type="text" name="middle_name">

答案 1 :(得分:1)

首先更改你的中间名和姓名attribue,不要在namig之间保留空格。 ID和NAME令牌必须以字母([A-Za-z])开头,后面可以跟任意数量的字母,数字([0-9]),连字符(“ - ”),下划线(“_”) ,冒号(“:”)和句号(“。”)。

<input type="text" size ="25" class="input_text" placeholder="Father's name"  name="middle name" onfocus="if(this.value==this.defaultValue)this.value=''"    
    onblur="if(this.value=='')this.value=this.defaultValue" 
    value="" id="m_name"/>

<input type="text" size ="25" class="input_text" placeholder="Surname"  name="last name" onfocus="if(this.value==this.defaultValue)this.value=''"    
    onblur="if(this.value=='')this.value=this.defaultValue" 
    value="" id="l_name"/>

您可以将其设为单个字符串,以便在前端显示全名,并将其插入名称字段中:

<?php
//your connection
$f_name=$_POST['name'];
$m_name=$_POST['m_name'];
$l_name=$_POST['l_name'];
$full_name=$f_name." ".$m_name." ".$l_name;
mysqli_query($con,"insert into table_name set name='$full_name'");
?>

答案 2 :(得分:0)

将您的name属性更改为下面提到的$ _POST []变量名。

<?php

//your connection

$f_name = mysqli_real_escape_string($con, $_POST['name']);
$m_name = mysqli_real_escape_string($con, $_POST['m_name']);
$l_name = mysqli_real_escape_string($con, $_POST['l_name']);

$full_name = $f_name . " " . $m_name . " " . $l_name;

$sql = "INSERT INTO yourTableName (tableColumnName) VALUES ('".$fullname."')";
$res = mysqli_query($con, $sql);

?>

希望这可以帮助你。

答案 3 :(得分:0)

你可以使用json_encode获取$ _POST变量来获取json字符串并将其存储在db中。

要从存储的json字符串中获取原始数组,可以使用json decode,这样就不会丢失任何信息。

以下是一个例子:

$form_data_json = json_encode( $_POST );
// store $form_data_json in database.
// .. 
// ..
// When you want to get stored data, just fetch it from db. let it be stored in $fetch 
$original_post_array = json_decode( $fetch, true );