【发布时间】:2016-04-15 21:11:21
【问题描述】:
我有一个在字段编号和值字段下存储数据的表。我正在尝试以数组或对象格式获取记录,但无法做到这一点。
我的查询如下所示:
$signups = "SELECT *
FROM {$wpdb->prefix}rg_lead_detail
WHERE
(form_id = '7' AND CAST(field_number AS DECIMAL) = CAST(1.3 AS DECIMAL)) OR
(form_id = '7' AND CAST(field_number AS DECIMAL) = CAST(1.6 AS DECIMAL)) OR
(form_id = '7' AND field_number = '5')
";
$getappt = $wpdb->get_results($signups);
foreach ($getappt as $value) {
//echo "<pre>";print_r($value);echo "</pre>";
echo '<pre>'.$value->value;
$email = $value->value;
}
它的打印结果是这样的 输出:
stdClass Object
(
[id] => 10355
[lead_id] => 423
[form_id] => 7
[field_number] => 1.3
[value] => Bruce
)
stdClass Object
(
[id] => 10356
[lead_id] => 423
[form_id] => 7
[field_number] => 1.6
[value] => Faber
)
stdClass Object
(
[id] => 10357
[lead_id] => 423
[form_id] => 7
[field_number] => 2.1
[value] => 40 Harmony Lane
)
此查询有两个问题,首先它获取针对form_id =7 的所有记录,而不是字段field_number (2) 我如何将前3 个对象数组设置为一个数组,以便我可以通过电子邮件获取用户名。第一个对象数组有名字值,第二个对象数组有姓氏值和第三个电子邮件。
使用此查询解决了第一个问题。
"SELECT *
FROM {$wpdb->prefix}rg_lead_detail
WHERE
(form_id = '7' AND FORMAT(field_number,2) = FORMAT(1.3,2)) OR
(form_id = '7' AND FORMAT(field_number,2) = FORMAT(1.6,2)) OR
(form_id = '7' AND field_number = '5')
"
【问题讨论】:
-
第二张图带来了什么?请写一个更好的问题
-
为什么不用
lead的值作为key来组合用户数据呢?您可以稍后使用 array_values() 将其剥离。 -
@syck 如果我使用 group by 和lead id,那么它只返回返回第一个值数组。
-
我将尝试在答案中进行解释。但我不明白为什么你删除了表格示例并第二次输入查询,以及我不明白未签名的第一条评论。我从未在那个问题中看到过第二张图片。
-
@syck 我试图添加数据库结构和值的图片但无法这就是我删除它的原因。我获取值唯一的问题是将值组合到一个数组中,例如 (fname,lname,email ) 但目前我得到了所有三分之三的对象。
标签: php mysql arrays wordpress