MySQL:WP用户元表:获取类型和名称,然后排序

时间:2013-10-10 14:12:10

标签: mysql wordpress crosstab

我认为这是一个交叉标签工作,但我没有看到它!在Wordpress usermeta表中,数据如下:

| userid | meta_key | meta_value
| 123    | grant    | Education

| userid | meta_key | meta_value
| 123    | orgname  | ABC School

我需要在表格中搜索所有授权类型,例如“教育”,然后对结果进行排序,以便组织名称按字母顺序排列。

最终结果应该是这些行的数据集:

| userid | grant     | orgname
| 123    | Eductaion | ABC School

我该怎么做?

提前致谢!

请注意:这些页面不在wp本身内,但使用的是wp db。感谢。

2 个答案:

答案 0 :(得分:1)

检查这是否是你想要的。

<?php
$query = "SELECT userid ,meta_key, meta_value
FROM table
GROUP BY userid ";
$row = mysql_query($sql) or die(mysql_error());
$data = $array();
$i=0;
while( $res = mysql_fetch_array($row) )
{
  $data[$i] = $res;
  $i++;
}
echo "<table>";
for($i=0;$i<=count($data);$i+=2)
{
   echo "<tr>";
      echo "<td>userid </td>";
      echo "<td>".$data[$i]['meta_key']."</td>";
      echo "<td>".$data[$i+1]['meta_key']."</td>";
    echo "</tr>"

   $sql= "SELECT userid ,meta_key, meta_value
            FROM table
           WHERE userid = '".$data[$i]['userid']."' ";
   $row_sub = mysql_query($sql) or die(mysql_error());
   $j=0;
  while( $resSub = mysql_fetch_array($row_sub ) )
  {
    $subData[$j] = $resSub ;
    $j++;
  }

  for( $j=0;$j<=count($subData[$j]);$j+=2 )
 {
    echo "<tr>";
      echo "<td>".$subData[$j]['userid ']."</td>";
      echo "<td>".$subData[$j]['meta_value']."</td>";
      echo "<td>".$subData[$j+1]['meta_value']."</td>";
    echo "</tr>"
 }
}
echo "</table>";
?>

答案 1 :(得分:0)

<?php
  $all_meta_for_user = get_user_meta( 123 );
  echo "<pre>";

  print_r( $all_meta_for_user ); // get all meta data of a particular user
  exit;
?>

在这里查看更多Get User Meta