我想创建一个函数,该函数获取表的数据,其中来自第一个表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
可以包含users
或pets
的列名。如果列名有歧义,必须通过完全限定它们来解决。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);