据推测,这个问题已经在其他地方得到了回答,但我还没有成功完成我到目前为止所做的事情(这里有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 :(得分: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是一些值,表示分组元素,如元素集的userID或groupID。没有这个,我看不出你如何能够完成你要求的超过1行数据。当然,使用mysql对group by语句的扩展...如果你不关心为每个元素ID返回哪些值,你不需要选择中的userGroupingID,或者根本不需要一个组..
Pivot可以更简单:示例MySQL pivot table
但你会遇到同样的问题。什么表示元素的分组方式?
答案 1 :(得分: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>';
//}