2013-06-24 79 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手冊(谷歌將幫助)並查看'JOIN',嘗試一下,如果你需要支持,發佈你的代碼 - 只有SQL - 然後問一個問題!祝好運並玩得開心點! – michi

+0

既然你有兩個查詢users.user_id你可以加入他們嗎? – ethrbunny

+0

子句阻止我做這件事不同嗎? –

回答

0

發現問題。當論壇得到option_id的數據時,它將值加1。我已經改變了它考慮到這一點