Php 如何在一个变量中发布两个字段值

Php 如何在一个变量中发布两个字段值,php,Php,我有两个领域 <form action="insert.php" method="post"> Firstname: <input type="text" name="firstname" /> Lastname: <input type="text" name="lastname" /> Age: <input type="text" name="age" /> <input type="submit" /> </form&

我有两个领域

<form action="insert.php" method="post">
Firstname: <input type="text" name="firstname" />

Lastname: <input type="text" name="lastname" />

Age: <input type="text" name="age" />
<input type="submit" />
</form>

名字:
姓氏:
年龄:
如何在数据库的一个字段中将name和lastname放在一个变量中 是吗


只需将两个值连接起来,例如

<?php
    $name = $_POST['firstname'] . $_POST['lastname'];
?>


然后在你想要的任何字段中发布$name。

实际上你有三个字段。使用(或):


如果将值存储在数据库中,请不要忘记使用(或使用上面所说的内容)。永远不要相信用户输入。

保留一个数组,并将其序列化以存储它

$name['firstname']=$_post['firstname'];

$name['lastname']=$_post['lastname'];

//storage and retrieval methods 
$stored_name = serialize($name);

$name = unserialize($stored_name);

通过这种方式,您不会失去在数组中分离变量的功能,如果需要,您可以随时将它们连接起来以供显示。

一般性评论。世界上有很大一部分人没有名字和姓氏

更好的做法是只要求“姓名”,并将其粘贴在一个字段中


如果必须拆分它们,那么“给定名称”和“姓氏”是更好的标签。

您可以使用[]为文本输入指定相同的名称

Firstname: <input type="text" name="name[]" />

Lastname: <input type="text" name="name[]" />
但我更愿意

$name=$_post['firstname'] . ' ' . $_post['lastname'];

我也有同样的问题,我有一个表单,上面有报告问题的人的名字,它从我的用户数据库中取名字和姓氏,并将它们加在一起,但是当需要将两个名字都发布到数据库时,它只会发布第一个名字。 我的解决方案是首先从用户数据库中调用名字和姓氏,然后我只调用名字和姓氏,并将它们组合在一起生成reportername

因此,这是代码的第一部分,用于调用我需要的表单用户详细信息:

// Select the member from the users table
$sql = "SELECT * FROM users WHERE username='$log_username' AND activated='1' LIMIT 1";
$user_query = mysqli_query($db_conx, $sql);
// Now make sure that user exists in the table
$numrows = mysqli_num_rows($user_query);
if($numrows < 1){
echo "That user does not exist or is not yet activated, press back";
//    exit();   
}
// Fetch the user row from the query above
while ($row = mysqli_fetch_array($user_query, MYSQLI_ASSOC)) {
$profile_id = $row["id"];
$first_name = $row["First_Name"];
$last_name = $row["Last_Name"];
$userlevel = $row["userlevel"];


}
然后,您可以将其发布到数据库:

$reportername = mysqli_real_escape_string($db_conx, $reportername);

$sql = "INSERT INTO yourform  (`reportedby`) Value ('$reportername')";

我已经将我的代码分条,这样可以给你一个想法,我相信有更多经验的程序员可以告诉你一种更简单的方法,我只知道它对我有用。

连接变量的快捷方法是:

$name = "$_POST[first_name] $_POST[last_name]"

这个能帮你。。。!我也实现了这一点,它的工作

Firstname: <input type="text" name="firstName" />

Lastname: <input type="text" name="lastName" />

我会尝试让你知道,或者更好的是,使用带绑定参数的PDO。逃跑是1990年的事。这一点很好,但更适合作为对原始问题的实际评论。我也有一个内部辩论。表格是用英语写的,英语国家有多少人没有名字和姓氏?呃,那些非欧洲背景的人?
// Select the member from the users table
$sql = "SELECT * FROM users WHERE username='$log_username' AND activated='1' LIMIT 1";
$user_query = mysqli_query($db_conx, $sql);
// Now make sure that user exists in the table
$numrows = mysqli_num_rows($user_query);
if($numrows < 1){
echo "That user does not exist or is not yet activated, press back";
//    exit();   
}
// Fetch the user row from the query above
while ($row = mysqli_fetch_array($user_query, MYSQLI_ASSOC)) {
$profile_id = $row["id"];
$first_name = $row["First_Name"];
$last_name = $row["Last_Name"];
$userlevel = $row["userlevel"];


}
$reporter_sql = "SELECT CONCAT (First_name,' ', Last_name) AS reportername FROM users WHERE username='$log_username' AND activated='1' LIMIT 1";
$reporter_results = mysqli_query($db_conx, $reporter_sql);
       while ($row = mysqli_fetch_array($reporter_results, MYSQLI_ASSOC)){
       $reportername = $row['reportername'];
       }
$reportername = mysqli_real_escape_string($db_conx, $reportername);

$sql = "INSERT INTO yourform  (`reportedby`) Value ('$reportername')";
$name = "$_POST[first_name] $_POST[last_name]"
Firstname: <input type="text" name="firstName" />

Lastname: <input type="text" name="lastName" />
$fullname = $_post['firstName']. ' ' .$_post['lastName'];