问题:如何获取PHP / HTML表单以填充mysql数据库中以前提交的用户数据?
好的,我已经浏览互联网几个星期了,试图找到一个可以帮助我的教程或一些线程。
我正在为桌面RPG游戏创建一个Web表单。这是一个简单的表单,主要是字段和下拉菜单,包括“角色名称”,“年龄”,“性别”等。
我已将它保存到将保存到mysql数据库的位置。
我也有它,因此它们是将数据链接到的外键 用户已登录。
现在,我有一个:$ _REQUEST ['Character'](字符是该字符的名称 形式)允许所有输入的数据在相应的 提交后的盒子,如果有错误或类似情况(使用 停留在所选项目上的下拉菜单除外 我现在正在读书。
但现在我想要它,以便如果用户已经创建了一个角色,当他们重新登录时,所有这些信息将被拉回并填入相应字段的表单中。
这样做的最佳方法是什么?或者任何人都可以指出我正确的方向另一个回答的话题,视频,你有什么,这会更好地向我解释这个?
我认为你们所有人都不需要任何代码,但是如果需要我可以发布一些代码,只有很多代码
答案 0 :(得分:0)
我们举一个简单的例子。假设我们有一个表Characters
,其中包含字段id
,name
和age
。
为此表提供编辑表单的一种更简洁的方法(IMO)是让表单假设有一个包含这些字段的数组(让我们称之为$char
)。主代码将从任何地方获取此数组,无论是来自表单字段还是来自数据库。
(注意,很多东西都被省略了。我不知道或关心你正在使用什么数据库,或者你如何进行验证;重要的部分是表单处理,无论数据库如何都可以。)
<form method="post">
<input type="hidden" name="Character[id]" value="<?= intval($char['id']) ?>">
<input name="Character[name]" value="<?= htmlentities($char['name']) ?>">
<input name="Character[age]" value="<?= htmlentities($char['age']) ?>">
<input type="submit">
</form>
提交表单时,$_POST['Character']
将是一个数组,并包含表单提交的有关该字符的所有信息。
让我们有一个saveCharacter
来获取该信息并将其保存为一行...
(伪代码行以...
开头;片段看起来...like this...
)
function saveCharacter($char) {
if (empty($char['id'])):
... do insert
... $char['id'] = last insert ID
else:
... do update
endif;
// return the saved char; inserting would have added an ID
return $char;
}
...和loadCharacter
选择该行,并返回其内容与您在表单中的名称相同。 (保持表单和数据库字段名称一致在这里有很大帮助。如果两者使用相同的名称,您可以直接返回该行。)
function loadCharacter($id) {
... $result = result from: SELECT id, name, age FROM Characters WHERE id = ?
... return first (should be only) row of $result
}
(如果名称不同,则需要转换。您通常可以让DBMS为您执行此操作; google搜索“SQL列别名”以获取更多信息。)
以及解决所有这些问题的代码......
if (isset($_POST['Character'])) {
$char = saveCharacter($_POST['Character']);
}
elseif ( ...the user already has a character id... ) {
$char = loadCharacter(...character id...);
}
else {
// first time on the page, and there's no saved character
// give $char the right field names, to prevent notices
$char = array('id' => null, 'name' => null, 'age' => null);
}
当您从上面添加表单时,它会将$char
的值放在适当的元素中。