我正在尝试从搜索框中收集数据。条件如果该值存在,请根据搜索次数更新计数器字段。
问题:在表单中搜索重复值时,计数器值会增加2而不是1。因此,如果其当前值为5,并且已再次搜索该术语,则数据库中的值将更新为7,而不是6。知道原因吗?
function content_filter( $where, $wp_query ){
global $wpdb;
if ( $search_term = $wp_query->get( \'search_prod_content\' ) ) {
$where .= \' AND \' . $wpdb->posts . \'.post_content LIKE \\\'%\' . esc_sql( $search_term ) . \'%\\\'\';
}
// first check if data exists with select query
$datum = $wpdb->get_results("SELECT * FROM search_product WHERE TERM = \'".$search_term."\'");
if($wpdb->num_rows > 0) {
$sql = $wpdb->prepare(
"UPDATE search_product SET COUNTER = COUNTER + 1 WHERE TERM = \'".$search_term."\'");
$wpdb->query($sql);
}
// if not exist in the database then insert it
else{
$now = new DateTime();
$datesent=$now->format(\'Y-m-d H:i:s\');
$sql = $wpdb->prepare(
"INSERT INTO `search_product` (`TERM`,`DATE`) values (%s,%s)",
$search_term, $datesent);
$wpdb->query($sql);
}
return $where;
}