2013-02-08 44 views
0

以下是情況。從兩個MySQL表創建一個已過濾的數組

我在DB中有兩個表:tblcustomfieldsvalues(用於自定義字段條目)和tblclients(包含客戶端列表)。

tblcustomfieldsvalues具有如下的數據結構:

id =>10 relid =>13 data =>somedataentry

id =>10 relid =>21 data =>someotherdataentry

tblclients具有如下的數據結構:

id =>13 firstname =>somename lastname =>somelastname

我有這樣的代碼來創建的relids陣列具有id = 10:

$sql = mysqli_fetch_array(mysqli_query("SELECT * FROM `tblcustomfieldsvalues` WHERE `id` = '10'")); 

$cids = array(); 

while ($row = $sql) 
{ 
    array_push($cids, $row['relid']); 
} 

現在我擁有填寫自定義字段的用戶ID在$cids陣列中有一些數據,我如何從tblclients獲得這些用戶的詳細信息?

在此先感謝。

+0

你的tblclients表結構是什麼? – sgeddes

+0

因爲你還沒有給你tblclients結構,但是你已經在cid和id上執行了連接 –

+0

爲'tblclients'添加了數據結構 –

回答

1

聽起來像是你只需要使用一個INNER JOIN

SELECT t2.* 
FROM tblcustomfieldsvalues t 
    INNER JOIN tblclients t2 ON t.relid = t2.id 
WHERE t.ID = 10 

祝你好運!

+0

一旦我添加了這段代碼,就會得到'503服務不可用'。 :( –

+0

@OhhMee - 這個代碼只會得到你要求的客戶端詳細信息,你需要更新你的php代碼 - 這個查詢返回所有的用戶ID和其他用戶信息(不僅僅是用戶ID - - 任何在您的tblclients中匹配自定義字段中的ID 10)有意義嗎? – sgeddes

+0

是的,我會研究更多的代碼,謝謝:) –

0

不知道我不能肯定的tblclients表結構,但它聽起來像的,而不是做單獨的查詢和循環你可以只使用一個連接:

SELECT 
    * 
FROM 
    tblcustomfieldsvalues 
    NATURAL JOIN tblclients 
WHERE 
    id = 10 
1
$sql = mysqli_fetch_array(mysqli_query("SELECT * FROM `tblcustomfieldsvalues` WHERE `id` = '10'")); 

$cids = array(); 

while ($row = $sql) 
{ 
    //array_push($cids, $row['relid']); 
    $sql1 = mysqli_fetch_array(mysqli_query("SELECT * FROM `tblclients ` WHERE `id` = '$row['relid']'")); 
    while ($row1 = $sql1) 
    { 
      //echo your output 
    } 
} 

OR

SELECT * FROM 
tblcustomfieldsvalues cv,tblclients c WHERE 
cv.id = 10 and cv.id = c.id 
相關問題