php - 为什么 Formidable Pro 中的 PHP/MySQL COUNT 不工作?
问题描述
我想获取数据库中的条目数以确定当前用户是否已经有条目。结果应该是我可以在其他地方使用的数字。以下代码似乎不起作用。有人可以帮我吗?
...
add_filter('frm_validate_field_entry', 'een_maal', 10, 3);
function een_maal($errors, $posted_field, $posted_value){
if(!is_admin()){
global $wpdb, $user_ID;
// $entry_id = (isset($_POST['id'])) ? $_POST['id'] : 0;
$paginatitel = do_shortcode("[page_slug]");
$entries = $wpdb->get_col($wpdb->prepare("SELECT * FROM ".
$wpdb->prefix ."frm_item_metas em LEFT JOIN ".
$wpdb->prefix ."frm_items e ON (em.item_id = e.id)
WHERE
form_id=23 AND
em.field_id= 591 AND
em.meta_value=$paginatitel AND
user_id = $user_ID
"));
if(count($entries) <= 0) //limit to one entry per option.
$errors = 'You have already selected that option';
}
return count($entries);
echo count($entries);
}
add_shortcode( 'test', 'een_maal' );
...
结果似乎总是“0”。
解决方案
您正在尝试返回一列,但您没有按照此链接指定列名。
但是,我认为您更愿意做的是计算返回的行数,也许?快速浏览一下Wordpress 开发人员参考站点上所有可用的选项。
也许这样的事情会奏效?
$entries = $wpdb->get_var($wpdb->prepare("SELECT count(*) FROM ".
$wpdb->prefix ."frm_item_metas em LEFT JOIN ".
$wpdb->prefix ."frm_items e ON (em.item_id = e.id)
WHERE
form_id=23 AND
em.field_id= 591 AND
em.meta_value=$paginatitel AND
user_id = $user_ID
"));
我将 get_col 更改为 get_var 并尝试 count(*) 返回返回的行数。
推荐阅读
- jmeter - 如何在 JMeter 中比较从 DB 到 JSON 变量的特定位置的值
- swift - 如何在swift中从下到上为特定标签设置动画
- java - Netbeans 中无法打开共享文件错误 JavaFx FXML 应用程序
- php - 比较 Carbon startOfDay() 和 now()->startOfDay() 不能正常工作
- scala - circe 自动将 json 解析为案例类,但缺少一些键值
- python - 如何解决子图中的线不可见
- reactjs - 使用 React 测试库和 Mock Service Worker 测试 React 模式的最佳实践?
- opencv - OpenCV 中是否有等效功能或 skimage.feature.peak_local_max 的实现?
- mysql - 无延迟的实时数据处理
- python - 为 lag_plot 创建子图