【问题标题】:Display MySQL results from database that lists values rather than organized columns显示来自列出值而不是有组织的列的数据库的 MySQL 结果
【发布时间】:2016-09-30 03:47:15
【问题描述】:

在 WordPress 上,我们使用重力形式来收集用户数据。我有时间有效或正确地显示结果,以便我可以操作它并创建一个客户列表页面。

我习惯于看到这样的数据库:

标识 |名字 |姓氏 |等| form_id

1 |约翰 |能源部 | x | 12

但 Gravity 表单存储数据如下:

标识 |字段编号 | form_id |价值

1 | 8 | 3 |约翰

2 | 14 | 3 |能源部

当然有几个field_numbers对应名字,姓氏,地址,电话等,但我没有列出。

所以我想要做的就是运行一个 SELECT 语句并显示出漂亮且有条理的结果,例如:

John Doe(需要 2 个字段在循环中并排排列)

地址(当然我可以在循环中放一个
来中断) 等等

我很抱歉,但我没有通过这种方式提取数据,我什至不知道它叫什么。

我在下面的代码是一种显示内容的微弱尝试,但我知道它必须完全低效且不正确。提取数据的正确方法是什么?这种类型的存储叫什么(Gravity Forms 的做法)?

global $wpdb;
$rows = $wpdb->get_results( "SELECT form_id, value, field_number FROM     
wp_rg_lead_detail WHERE form_id=3" );
foreach( $rows as $row ) {
if($row->field_number==1) {
    echo $row->value; 
}
if($row->field_number==8) {
    echo $row->value; 
}
}

【问题讨论】:

    标签: mysql wordpress select gravity-forms-plugin


    【解决方案1】:

    不幸的是,我没有给你一个干净的解决方案,而且我不知道这种存储形式叫什么,除了真正的邪恶。话虽如此,我认为已经有几个小时没有回复,您可能会喜欢一些新的想法作为可能的试验途径。我在这里包括了 2 条思路,它们应该与你的其余数据的 mods 一起使用,尽管仍然很恶心。祝你好运。

    select distinct
      f.form_id, 
      concat(first.val, ' ', last.val) as name
    from
      form f
      inner join 
       (select f1.form_id, f1.val from form f1 where f1.field_number = 8) as first
       on f.form_id = first.form_id
      inner join 
       (select f2.form_id, f2.val from form f2 where f2.field_number = 14) as last
       on f.form_id = last.form_id
      where f.form_id = 3;
    
    
    select distinct
      f.form_id, 
      n.name
    from
      form f
      inner join 
        (select 
           form_id, 
           group_concat(distinct val order by field_number asc separator ' ') as name
         from 
           form 
         where 
           field_number = 8 
           or field_number = 14 
         group by form_id) n 
       on f.form_id = n.form_id
      where f.form_id = 3;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多