0

我认为这是一个交叉表工作,但我没有看到它!在 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。谢谢。

4

2 回答 2

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>";
?>
于 2013-10-10T14:59:38.603 回答
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;
?>

在这里查看更多获取用户元数据

于 2013-10-10T15:01:17.043 回答