• Witam,

    w pluginie który tworzę stworzyłem sobie funkcję która tworzy mi nową tabelę w bazie danych wordpressa, wg tego co jest tutaj:
    http://codex.wordpress.org/Creating_Tables_with_Plugins

    i mam tak:

    function myfunction()
    {
    global $wpdb;
    global $jal_db_version;

    $mytable = $wpdb->prefix . „test”;

    if ($wpdb->get_var(„SHOW TABLES LIKE '” . $mytable . „'”) != $mytable) {
    $query = „CREATE TABLE ” . $mytable . ” (
    id INTEGER NOT NULL AUTO_INCREMENT,
    text TEXT NOT NULL,
    created DATE NOT NULL,
    UNIQUE KEY id(id)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;”;
    }

    require_once(ABSPATH . 'wp-admin/includes/upgrade.php’);
    dbDelta($query);

    add_option(„jal_db_version”, $jal_db_version);
    }
    register_activation_hook(__FILE__, 'myfunction’);

    dodałem sobie do tej tabeli nowy rekord i chciałem teraz w contencie pobrać sobie liczę rekordów w ten sposób:

    function myfunction2()
    $user_count = $wpdb->get_var( „SELECT COUNT(*) FROM $wpdb->test” );
    return $user_count;
    }
    add_action(’the_content’, 'myUser’);

    jednak zapytanie nie działa … tzn. na tej tabeli nie działa … jeśli zmienię „test” na „posts” to pobiera mi dane ..

    co jeszcze powinienem zrobić aby móc operować teraz na tabeli którą sobie dodałem do wordpressa ? …

Viewing 5 replies - 1 through 5 (of 5 total)
  • A nie wywołujesz przypadkiem tej funkcji cały czas czyszcząc sobie bazę? Wpis ten jest w bazie podczas pobierania?

    Twórca wątku damianoo

    (@damianoo)

    hmm … skoro mam tak:

    register_activation_hook(__FILE__, 'myfunction’);

    to chyba powinno to się wykonać tylko raz, w czasie aktywacji wtyczki …

    a wpis ten jest w bazie podczas pobierania, na pewno bo sprawdzałem …

    dziwne właśnie że dla dowolnej tabeli wordpressowej pobiera mi ilość rekordów a dla mojej nie … może coś jeszcze muszę gdzieś dopisać, …
    var_dump wyświetla mi NULL …

    Twórca wątku damianoo

    (@damianoo)

    dziwne, że to działa:
    SELECT COUNT(*) FROM $wpdb->posts
    a to nie:
    SELECT COUNT(*) FROM $wpdb->test

    próbowałem też tak:
    SELECT COUNT(*) FROM $wpdb->wp_test
    ale też nic

    wykonywałem też to zapytanie w phpmyadmin i działa, pokazując mi ile jest rekordów, więc rekordy są …

    może faktycznie jest tak, że te rekordy za każdym razem są czyszczone, ale pytanie dlaczego ? Może mam złą kolejność wywoływania funkcji w moim pluginie ? … szukam przyczyny

    Twórca wątku damianoo

    (@damianoo)

    co ciekawe spróbowałem pobrać dane z tabeli wordpressowej którą mam pustą, np. links i wyświetla mi: 0 (zero)

    poza tym drugą rzecz jaką zrobiłem to usunęłem wszystko z mojego plugina poza tą funkcją do wyświetlania liczby rekordów i nadal nic, wciąż nie pobiera mi liczby rekordów …

    wniosek taki, że wodpress nie wie o tej tabeli … jak to możliwe ? …

    Twórca wątku damianoo

    (@damianoo)

    ok … po wielu bojach udało się, okazuje się że wszystko z powodu braku prefixu … to musi być zawsze tak robione:

    function myfunction2()
    {
    global $wpdb;
    $tablename = $wpdb->prefix . „test”;
    $test_count = $wpdb->get_var( „SELECT COUNT(*) FROM „.$tablename.”” );
    return $test_count;
    }
    add_action(’the_content’, 'myfunction2′);

    wiedziałem, że czegoś mi brakuje … dzięki za próby pomocy

Viewing 5 replies - 1 through 5 (of 5 total)
  • Temat ‘problem z pobieraniem danych z nowoutworzonej tabeli’ jest zamknięty na nowe odpowiedzi.