【发布时间】:2010-05-17 23:12:57
【问题描述】:
下午好,
我将首先从我想要完成的目标开始,然后给出我需要做的一个非常基本的示例。
目标
我决定放弃并使用数组结构来处理相同类型和规则的所有输入,而不是收集多个变量并分别用键命名它们。一旦我有了变量,我将针对它们进行验证,如果“ok”将它们存储在 MySQL 表中。该表将保存消费者信息,并且需要存储多行相同类型的信息。
第一关
我将省略这个问题的验证部分,因为我觉得我需要先了解基础知识。
<form action="?" method="POST" name="Form">
Member 1 First Name:<input type="text" name="MemberFirstName[]" /><br />
Member 1 Last Name: <input type="text" name="MemberLastName[]" /><br />
Member 1 Email: <input type="text" name="MemberEmail[]" /><br />
Member 2 First Name:<input type="text" name="MemberFirstName[]" /><br />
Member 2 Last Name: <input type="text" name="MemberLastName[]" /><br />
Member 2 Email: <input type="text" name="MemberEmail[]" /><br />
Member 3 First Name:<input type="text" name="MemberFirstName[]" /><br />
Member 3 Last Name: <input type="text" name="MemberLastName[]" /><br />
Member 3 Email: <input type="text" name="MemberEmail[]" /><br />
<input type="submit" name="submit" value="Continue" />
</form>
我希望为名字(必填字段)提供的每个输入都会为该特定条目生成一个唯一键,并且不会覆盖输入的任何数据。因为我在页面之间携带信息(结帐表单),所以我将 POST 变量转换为 SESSION 变量,然后最终存储在 mysql 数据库中。我的希望是:
<?php
$conn = mysql_connect("localhost", "username", "password");
mysql_select_db("DBname",$conn);
$sql = "INSERT INTO tablename VALUES ('$_SESSION[Member1FirstName]', '$_SESSION[Member1LastName]', '$_SESSION[Member1Email]', '$_SESSION[Member2FirstName]', '$_SESSION[Member2LastName]', '$_SESSION[Member2Email]', '$_SESSION[Member1FirstName]', '$_SESSION[Member3LastName]', '$_SESSION[Member3Email]')";
$result = mysql_query($sql, $conn) or die(mysql_error());
Header ("Location: completed.php");
?>
Member1、Member2 和 Member3 值将出现在表中各自的行中。我知道我的代码是错误的,但我正在尝试实现我试图实现的整体业务目标,并尝试学习如何以正确的方式编写代码。
我对编程非常非常陌生,因此非常感谢任何“婴儿建议”。
【问题讨论】:
-
你的问题到底是什么?
-
我只是不明白为什么需要数组 - 这是完全可能的,但您应该在不同的情况下使用,例如产品的颜色范围或类似的东西。在您的情况下,一个简单的 memberfirstname1, memberfirstname2 可以完成这项工作,并保持代码简单,就像您所说的那样开始。
-
@Felix King - 如何创建这样的值数组。收集这些数据时我不懂数组
-
@Ronaldo Junior - 原因是因为我实际上有 20 个不同成员的 12 个字段,传递 200 多个会话变量是矫枉过正的,而且还会导致我创建大量代码和验证。我希望能够创建 1 个单一表单布局,并根据第 1 页所需的登记人数,让表单自动创建可用于人口的其他字段
-
@JM4:这已经是将表单元素指定为数组的一部分的方法。
$_POST['MemberFirstName']应该给你一个数组。你还没试过吗?