2013-04-20 3 views
1

Я хотел бы создать функцию, которая берет данные таблицы, где имя пользователя из первой таблицы 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; 
    } 
} 

ответ

0

Заменить вы запрашиваете с этим:

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); 
+0

Когда я пытаюсь это, я получаю эту ошибку: 'Warning: mysql_fetch_assoc() ожидает параметр 1, чтобы быть ресурсом, логический дан в C: \ WAMP \ WWW \ Nebupets \ core \ functions \ register.php в строке 82' (строка 82 имеет запрос), и я использую это для получения feilds btw: '$ user_data = user_data ($ session_user_id, 'user_id', 'username', ' first_name ',' email ',' avatar ',' rank ',' petnumber ',' pet_id ', \t' petname ',' species ',' gender ',' color ',' level ',' defense ',' lility ',' equipment_2 ',' equipment_3 ',' equipment_4 ',' equipment_5 '); 'которые являются основными полями – asbxzeeko

+0

, пожалуйста, проверьте мое обновление. – didierc

+0

, пожалуйста, дайте мне знать, в чем проблема. – didierc