2016-02-28 68 views
0

我有3个表看起来像这样:如何使用INNER JOIN更新3个表格?

  1. 用户:

    • ID
    • 名称(字符串)
    • ageID(INT)
    • descID(INT)
  2. users_age:

    • ageID(INT)
    • AGE_GROUP(字符串)
  3. users_desc:

    • descID(INT)
    • desc_text(字符串)

现在,我有一个'编辑'窗体,它使用INNER JOIN在ageID和descID而不是ID中显示相应的字符串列。

还有一个指向updateUser.php来更新数据的按钮。我知道我可以更新名称:

$sql = "UPDATE users SET 
     Name = '$uName', 
     WHERE ID = '$uID'"; 

但是,当窗体页我如何与ageID/descID从AGE_GROUP /标识desc_text相当于ID更新ageID/descID(整数值)列中的用户表发送字符串列到updateUser.php文件?

我希望我的解释不是很混乱!

回答

2

如果表中的字符串是独一无二的(他们应该是)你可以更新到SELECT语句

$sql = "UPDATE users 
     SET ageID = (SELECT ageID FROM users_age WHERE age_group = '$uAgeString') 
     WHERE ID = '$uID'"; 

你可以做一些与其他表类似的输出。

但是 - 最好从网页上获取ID。通常,你这样做,通过设置选项标记的价值属性:

<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'"; 
+0

我用传递ID到的第二个方法值属性,并保持我的SQL语句更简单,非常感谢! – lucruhuv