我有3个表格如下:
用户:
users_age:
users_desc:
现在,我有一个'edit'表单,它使用INNER JOIN在ageID和descID而不是ID中显示相应的字符串列。
一个指示updateUser.php更新数据的按钮。我知道我可以用以下名称更新名称:
$sql = "UPDATE users SET
Name = '$uName',
WHERE ID = '$uID'";
但是,当表单页面将字符串列发送到updateUser.php文件时,如何使用age_group / desc_text等效ID中的ageID / descID ID更新USERS表中的ageID / descID(INTEGER值)列?
我希望我的解释不是很混乱!
答案 0 :(得分:2)
如果表中的字符串是唯一的(它们应该是),则可以更新为SELECT语句的输出
$sql = "UPDATE users
SET ageID = (SELECT ageID FROM users_age WHERE age_group = '$uAgeString')
WHERE ID = '$uID'";
你可以做一些与其他表类似的事情。
但是 - 从网页上获取ID会更好。通常,您可以通过设置选项标记的value属性来执行此操作:
<select name='uAgeID'>
<option value='1'>Young</option>
<option value='2'>Middling</option>
<option value='3'>Old</option>
</select>
这样你就可以有一个更简单的SQL语句:
$sql = "UPDATE users
SET ageID = $uAgeString
WHERE ID = '$uID'";