Inserir inserções de consulta 2 entradas, deve inserir 1

4

Eu escrevi um pequeno post pelo plugin de views, pelo menos comecei um.

Minhas tabelas são configuradas, mas quando são atualizadas, o código adiciona 2 entradas à minha tabela quando uma postagem é carregada e as visualizações são rastreadas. Eu literalmente não tenho idéia do porquê isso está acontecendo. Parece que o segundo ID do post inserido na tabela do banco de dados é o post diretamente após o que foi carregado. Exemplo: se a postagem que está sendo visualizada tiver id = 121, o código adicionará post 121 e 124.

Aqui está o meu código de inserção:

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;

Se alguém pudesse lançar alguma luz sobre isso eu agradeceria muito!

    
por dkmojo 13.07.2012 / 17:58

2 respostas

1

Soa como a pré-busca do navegador, veja os tickets básicos do WordPress # 12603 , #14382 e # 20192 .

Basicamente, algumas vezes alguns navegadores vêem o próximo post, e decidem ir em frente e carregá-lo enquanto você está lendo este. Então, quando você vai para o próximo post, ele carrega imediatamente, em vez de você ter que esperar. A desvantagem, como você encontrou neste caso, é que às vezes isso afeta o lado inesperado se o usuário não acabar vendo o outro post.

    
por J.D. 07.06.2014 / 22:16
0
$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";
    }
}
    
por ANKUSH POFALE 18.08.2015 / 21:59