2014-11-24 48 views
0

大概這個問題已經在其他地方得到了回答,但我還沒有設法完成即時嘗試做到目前爲止(reeeaal初學者在這裏)。從表中取出,切換行和列並按另一列值過濾

什麼即時試圖做的是從一個名爲「wp_iphorm_form_entry_data」表,該表看起來是這樣的檢索數據:

%/ element_id/value  /% 
----------------------------- 
%/ 4  /first name /% 
%/ 5  /last name /% 
%/ 42  /e-mail  /% 

然後切換行和列並重新命名,這樣的事情:

%/ 4 (f-name)/5 (l-name)/42 (e-mail) /% 
-------------------------------------------- 
    first name/last name/e-mail  /% 

最後通過另一個「element_id」過濾條目。 預先感謝您,任何接受者?

+0

你怎麼知道在什麼元素和值所屬的方式同一排? – xQbert 2014-11-24 22:57:29

+0

Google數據透視表 – Jaylen 2014-11-24 22:57:44

回答

0

這是它做的方式前樞軸功能存在

SELECT userGroupingID 
     MAX(case when element_Id=4 then value else null end) as `First Name`, 
     MAX(case when element_Id=5 then value else null end) as `Last Name`,  
     MAX(case when element_Id=42 then value else null end) as `e-mail` 
FROM wp_iphorm_form_entry_data 
GROUP BY userGroupingID 

UserGroupingID是一些其表示分組元素如用戶ID或用於元素集合中的組ID值。沒有這個,我看不出你如何完成你要求的超過一行數據。當然,如果你不關心爲每個元素ID返回哪個值,你不需要在select中選擇userGroupingID,或者根本不需要group ..

樞軸可以做到這一點更簡單:例如MySQL pivot table

但你會有同樣的問題。什麼表示元素是如何分組的?

+0

如何在php中顯示其結果?和element_Id隨機出現(作爲變量) – 2014-11-24 23:06:47

0

,你所要做的有,只需運行獲取所有你的結果,你需要和他們初始化數組,然後打印出來,你想

$el_id=[]; $val=[]; //create an array to store your results from db 
$link = mysqli_connect("myhost","myuser","mypassw","mybd") or die("Error".mysqli_error($link)); //conection 
$sql="select element_id,value from wp_iphorm_form_entry_data"; 
$result = $link->query($sql); //execute the query. 

while($row = mysqli_fetch_array($result)) { //store your results into arrays 
$el_id = $row["element_id"]; 
$val = $row["value"]; 
} 

print "<table><tr><th>$el_id[0] (f-name)</th><th>$el_id[1] (l-name)</th><th>$el_id[2] (e-mail)</th></tr>"; 
//foreach($el_id as $index=>$elementId){ // i comment this since your example is not clear to me 
echo '<tr><td>$val[0]</td><td>$val[1]</td><td>$val[]</td>'; 
//} 
相關問題