web-dev-qa-db-ja.com

挿入クエリは2つのエントリを挿入します。1を挿入する必要があります

私はviewsプラグインによる小さな投稿を書きましたが、少なくとも始めは開始しました。

私のテーブルはセットアップされていますが、それらが更新されると、投稿がロードされてビューが追跡されるときにコードは私のテーブルに2つのエントリーを追加します。私は文字通り、なぜこれが起こっているのかわかりません。 DBテーブルに入力された2番目の投稿IDは、ロードされた投稿の直後の投稿です。例:表示されている投稿がid = 121の場合、コードは投稿121と124を追加します。

これが私の挿入コードです。

if( is_single() && !is_page() ):
    // add a new data row into the views DB table with the post ID         
    $wpdb->query("INSERT INTO {$ppbv} (post_id, post_type) VALUES ('{$post->ID}','{$post->post_type}');"); 

    $data = $wpdb->get_row("SELECT * FROM {$ppbv_total} WHERE post_id='{$post->ID}'", ARRAY_A); // get the data row that has the matching post ID       

    if(!is_null($data)): // if we have a matching data row  
        $new_views = $data['views'] + 1; // increase the views by 1
        // update the data row with the new views
        $wpdb->query("UPDATE {$ppbv_total} SET views='{$new_views}' WHERE post_id='{$post->ID}';");           
    else: // if we don't have a matching data row (nobody's viewed the post yet)
        // add a new data row into the DB with the post ID and 1 view  
        $wpdb->query("INSERT INTO {$ppbv_total} (post_id, post_type, views) VALUES ('{$post->ID}','{$post->post_type}','1');"); 
    endif;
endif;

誰かがこれに光を当てることができれば私はそれを高く評価するでしょう!

4
dkmojo

ブラウザのプリフェッチのように聞こえます。WordPressのコアチケット #12603#14382 、および #20192 を参照してください。

基本的に、いくつかのブラウザは次の投稿が何であるかを見て、この記事を読んでいる間に先に進んでそれを読み込むことにします。そのため、次の投稿に進むと、待つ必要はなく、すぐに読み込まれます。あなたがこのケースで見つけたように、欠点はユーザーが他の記事を見てしまうことにならないなら時々これが予想外の副作用を持つということです。

1
J.D.
$location = $_SERVER[‘DOCUMENT_ROOT’];

include ( $location . '/wp-config.php' );
include ( $location . '/wp-load.php' );

global $wpdb;
$contactus_table = $wpdb->prefix."user";
if( isset( $_POST['submit'] ) ) {   
    $name=$_POST['name'];
    $email=$_POST['email'];
    $phone=$_POST['phone'];
    $message=$_POST['message'];

    $sql = "INSERT INTO $contactus_table        
        (`name`,`email`,`phone`,`message`)VALUES        
        ('$name','$email','$phone','$message')";

    if( $wpdb->query( $sql ) ) {
        echo "data is inserted";
    }
}
0
ANKUSH POFALE