2013-06-24 3 views
2

Я создаю страницу, где он получает контактные данные с форума о зарегистрированных участниках. Я ударил небольшую проблему, пытаясь восстановить пользовательские поля. Для университета и полеты выпадающее меню используется, чтобы пользователи могли выбирать из определенного списка. Однако для хранения данных на форуме используется 3 таблицы. Это небольшая часть таблицПоиск базы данных с php

db mock up http://www.emuas.co.uk/images/db_mock_up.png

на данный момент я получаю универ для запроса универ и полета для запроса полета, но результат не имеет никакого отношения к user_id. Не знаю, как это изменить.

$user = "SELECT * 
    FROM profile_fields_data 
    JOIN users 
    ON profile_fields_data.user_id = users.user_id 
    ORDER BY users.username"; 

$uni = "SELECT * 
    FROM profile_fields_data 
    JOIN users 
    ON profile_fields_data.user_id = users.user_id 
    JOIN profile_fields_lang 
    ON profile_fields_data.pf_university = profile_fields_lang.option_id 
    WHERE field_id =4 
    ORDER BY users.username"; 

$flight = "SELECT * 
    FROM profile_fields_data 
    JOIN users 
    ON profile_fields_data.user_id = users.user_id 
    JOIN profile_fields_lang 
    ON profile_fields_data.pf_flight = profile_fields_lang.option_id 
    WHERE field_id =3 
    ORDER BY users.username"; 

$userdata = $db->sql_query($user); 
$unidata = $db->sql_query($uni); 
$flightdata = $db->sql_query($flight); 
while($data = $db->sql_fetchrow($userdata)) 
{ 
    $datauni = $db->sql_fetchrow($unidata); 
    $dataflight = $db->sql_fetchrow($flightdata); 
    echo "<tr> 
    <td> <a href='http://emuas.co.uk/forum/memberlist.php?mode=viewprofile&u=" . $data['user_id'] . "'>" . $data['username'] . "</a></td> 
    <td> <a href='mailto:" . $data['user_email'] . "'>" . $data['user_email'] . "</a> </td> 
    <td>" . $data['pf_contact_number'] . "</td> 
    <td>" . $data['user_birthday'] . "</td> 
    <td>" . $data['pf_service_number'] . "</td> 
    <td>" . $datauni['lang_value'] . "</td> 
    <td>" . $dataflight['lang_value'] . "</td> 
    <td>" . $data['pf_secondary_duty'] . "</td> 
    </tr>"; 

Большое спасибо

+0

Привет, Байрон, вам нужен SQL-запрос, чтобы выбрать всю эту информацию выше для одного определенного user_id? Посмотрите достойное руководство по SQL (google поможет) и загляните в 'JOIN', попробуйте, и если вам нужна поддержка, отправьте свой код - только SQL - и задайте вопрос! Удачи и приятного времяпровождения! – michi

+0

Поскольку у вас есть users.user_id в обоих запросах, вы можете присоединиться к ним? – ethrbunny

+0

Разве не было бы лишних обстоятельств, чтобы прекратить это делать? –

ответ

0

Нашли проблему. Когда форум получил данные для option_id, он добавил 1 к значению. Я изменил его, чтобы принять это во внимание.