用户一个表中的数据,相对于另一个表


User Data from a table, in relation to another table?

我想创建一个函数,该函数获取表的数据,其中来自第一个表users的用户名与来自第二个表pets的所有者相同。我希望能够从$pet_data['fieldname']pet_data['fieldname']字段中回忆任何项目。一般答案会很好,因为我可以编辑代码xD。这是我的user_data函数,我试图应用我想要的,它不起作用:

function user_data($user_id) {
  $data = array();
  $user_id = (int)$user_id;
  $func_num_args = func_num_args();
   $func_get_args = func_get_args();
  if ($func_num_args > 1) {
    unset($func_get_args[0]);
    $fields = '`' . implode('`, `', $func_get_args) . '`';
    $data = mysql_fetch_assoc(mysql_query("SELECT $fields FROM `users` WHERE `user_id` = $user_id"));
    return $data;
  }
}

将您的查询替换为以下查询:

SELECT $fields FROM `users`, `pets`
WHERE `user_id` = $user_id
AND `owner` = $user_id

$fields可以包含userspets的列名。如果列名有歧义,必须通过完全限定它们来解决。users.user_id)。

这是一个可能的代码更新:

$fields = '`' . implode('`, `', $func_get_args) . '`';
$data = mysql_query("SELECT $fields FROM `users`, `pets` WHERE `user_id` = $user_id AND `owner` = $user_id");
if ($data === false) {
    die("error on mysql_query: ". mysql_error());
}
$data = mysql_fetch_assoc($data);