【发布时间】:2012-03-21 16:18:40
【问题描述】:
我正在尝试编写一个 PHP 脚本,该脚本将使用“field_definitions”表作为输入字段的源创建一个 HTML 表单,并根据“user_data”表中先前存储的结果设置每个字段的默认值。 (基于当前登录的用户......我有一个身份验证系统设置并使用会话变量运行。)
我的桌子是这样的......
users TABLE
user_id user_email user_firstname user_lastname user_password
1 johndoe@mail.com John Doe password
field_definitions TABLE
field_id field_type field_length field_name field_desc field_section
1 text 40 color What is your favorite color? 1
user_data TABLE
response_id user_id field_id user_response
1 1 1 Blue
我创建了一个代码块,它从我的“field_definitions”表中返回行并将它们存储在一个数组中。我可以使用 foreach 循环根据数组中的每一行生成表单,但我不知道如何从另一个表中提取第二组信息以获得默认值。
$dbc = mysqli_connect(sqlhost, sqluser, sqlsecret, sqldb);
$field_definitions_query = "SELECT * FROM field_definitions WHERE field_section = '1'";
$field_definitions_data = mysqli_query($dbc, $field_definitions_query);
$field_definitions = array();
while ($row = mysqli_fetch_array($field_definitions_data)) {
array_push($field_definitions, $row);
}
echo '<form enctype="multipart/form-data" method="post" action="' . $_SERVER['PHP_SELF'] . '">';
foreach ($field_definitions as $row) {
echo '<label for="' . $row[field_name] . '">' . $row[field_desc] . ':</label>';
echo '<input type="' . $row[field_type] . '" id="' . $row[field_name] . '" name="' . $row[field_name]. '" value="temp" /><br />';
}
echo '<input type="submit" value="Save" name="submit" /></form>';
我是否需要创建另一个表数据的第二个数组,然后以某种方式合并两者?
我的一般方法是否可行,还是有更好的方法?
我是 PHP 和一般编程的初学者,我宁愿不尝试征服任何框架;为了学习,我正在尝试用我自己的代码来实现这一点。
【问题讨论】:
-
你真的应该删除这些公开暴露你的主机名的图像!您可以将您的 sql 作为文本放入您的帖子中
-
你能发布你目前的代码吗?
-
您想了解 JOIN。连接命令是 SQL 所做工作的基本部分(以及它与将所有数据存储在电子表格中的区别)。了解 JOIN,您将升级两次,并解锁大部分 SQL 真正的力量! Here 是可以帮助您入门的众多快速教程之一。提示:有些人喜欢通过谈论内连接和外连接以及左、右和直来介绍 JOIN,但作为初学者,你几乎总是会使用内连接,所以不要让其他东西混淆你。
标签: php mysql web-applications