Insert query fügt 2 Einträge ein, sollte 1 einfügen

Ich habe ein kleines Posts by Views Plugin geschrieben, naja, zumindest eines gestartet.

Meine Tabellen sind eingerichtet, aber wenn sie aktualisiert werden, fügt der Code zwei Einträge in meine Tabelle ein, wenn ein Beitrag geladen und die Sichten nachverfolgt werden. Ich habe buchstäblich keine Ahnung, warum das passiert. Es sieht so aus, als wäre die zweite Post-ID, die in die DB-Tabelle eingegeben wurde, die Post direkt nach der geladenen Post. Beispiel: Wenn der angezeigte Beitrag id = 121 hat, fügt der Code post 121 und 124 hinzu.

Hier ist mein Einfüge-Code:

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; 

Wenn jemand etwas Licht auf dieses Thema casting könnte, würde ich es sehr schätzen!

Solutions Collecting From Web of "Insert query fügt 2 Einträge ein, sollte 1 einfügen"

Klingt nach Browser-Prefetching, siehe WordPress- coretickets # 12603 , # 14382 und # 20192 .

Im Grunde sehen einige Browser manchmal, was der nächste Post ist, und entscheiden sich, ihn zu laden, während Sie diesen lesen. Wenn Sie also zum nächsten Post gehen, lädt er sofort, anstatt dass Sie warten müssen. Der Nachteil, wie Sie in diesem Fall gefunden haben, ist, dass dies manchmal unerwartete Seiteneffekte hat, wenn der Benutzer den anderen Beitrag nicht sieht.

 $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"; } }