[英]Matching multiple values in wp_usermeta to get email from wp_users table
我创建了一个简单的html表单,将两个值(车牌号和状态)提交给我编写的php脚本。 我正在使用wordpress。 我希望脚本在wp_usermeta表中查找用户,并选择具有meta_value条目的用户ID,该条目与在表单中提交的license_plate和state都匹配。 然后,我希望脚本在wp_users表中查找该用户的电子邮件。 这是我的代码:
$license_plate = $_POST['license_plate'];
$state = $_POST['state'];
$userInfo = $wpdb->get_row ( $wpdb->prepare ("
SELECT user_id, user_email
FROM $wpdb->usermeta um
INNER JOIN $wpdb->users u ON (u.ID=um.user_id)
WHERE meta_value = %s", //OR meta_value !!
$license_plate
));
到目前为止,我可以基于license_plate meta_value获取user_email,但是我想确保相关的user_id也共享相同的状态值,因为我的数据库中有几个用户具有相同的牌照#但状态不同。
如何修改此查询以满足这两个条件? 还是我写一个额外的查询?
试试这个查询
$wpdb->prepare ("SELECT u.id, u.user_email
FROM $wpdb->usermeta plate, $wpdb->usermeta state, $wpdb->users u
WHERE plate.user_id = state.user_id
AND plate.meta_key = 'license_plate'
AND state.meta_key = 'state'
AND u.ID = plate.user_id
AND plate.meta_value = %s
AND state.meta_value = %s", $license_plate, $state)
这是相同的SQLFiddle: http ://sqlfiddle.com/#!2/cbc58/3
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.