• ponciusz

    (@ponciusz)


    Witam!
    poniższe zapytanie działa i wskazuje mi miesiące z wybranego roku $year w ktorych znajduja sie posty.

    $arc_months = $wpdb->get_col("SELECT DISTINCT MONTH(post_date) FROM $wpdb->posts WHERE YEAR(post_date) = '$year' AND terms.slug = 'reports' AND post_status = 'publish' ORDER BY post_date");

    Chciałbym wprowadzić dodatkowy parametr aby zapytanie brało tylko pod uwage (miesiace z danego roku) AND (w ktorych znajdują sie posty) AND (ktore znajduja sie w kategorii ’21’)

    rozumiem że tzreba tylko dodac parametr wskazujacy na odpowiednia kategorie ale nie wiem ktory to i jak wyglada ta składnia.

Zobacz 4 odpowiedzi - od 1 do 4 (z 4 łącznie)
  • coś takiego

    SELECT DISTINCT MONTH(post_date) FROM wp_posts p, wp_term_relationships r WHERE p.ID = r.object_id AND r.term_taxonomy_id =21 AND YEAR(p.post_date) =2012

    Twórca wątku ponciusz

    (@ponciusz)

    działa idealnie. w życiu bym do tego nie doszedł.
    Czy jest gdzieś opisana ta składnia abym mógł to zrozumieć? chodzi mi o:
    FROM wp_posts p, wp_term_relationships r
    gdzie opisane są te wszystkie ścieżki skąd mam wiedzieć ze istnieją??

    czy tutaj coś znajdę??
    WYKRES

    DZIĘKI ZA POMOC!!

    Moderator Marcin Pietrzak

    (@iworks)

    Czy jest gdzieś opisana ta składnia abym mógł to zrozumieć?

    http://dev.mysql.com/doc/refman/5.0/en/select.html

    wp_posts zamieniasz na $wpdb->posts,
    wp_term_relationships na $wpdb->wp_term_relationships
    to standardowe tablice wordpressa, zamieniasz na zmienne bo Twoja baza może się różnić prefiksem tabel

    21 zamieniasz ewentualnie na swoją zmienną , 2012 na $year.

    W sumie nie musisz używać aliasów tabel i uprościć do:
    SELECT DISTINCT MONTH(post_date) FROM wp_posts , wp_term_relationships WHERE ID = object_id AND term_taxonomy_id =21 AND YEAR(post_date) =2012

    W selekcie użyte podstawowe złączenie każdy z każdym.

Zobacz 4 odpowiedzi - od 1 do 4 (z 4 łącznie)

Temat ‘wpdb zapytanie do bazy danych o kategorie’ jest zamknięty na nowe odpowiedzi.