За последние 24 часа нас посетили 16962 программиста и 1652 робота. Сейчас ищут 989 программистов ...

Запрос в MySQL WP

Тема в разделе "PHP и базы данных", создана пользователем mmx, 26 ноя 2016.

Метки:
  1. mmx

    mmx Новичок

    С нами с:
    26 ноя 2016
    Сообщения:
    7
    Симпатии:
    0
    Привет всем.
    Использую WP и MySQL . В коде есть запрос на получения данных, я его не писал. Задумка такая из этого массива взять данные для календаря. Но есть проблема в этом массиве нет данных с именем 'Информация', который я хочу использовать. Хотя данные из той же таблицы postmeta.meta_key но с именем 'Дата' есть в массиве. Данные с 'Информация' получаю отдельно командой : $postmeta = get_post_meta($post->ID, "Информация"); но уже другой массив мне нужно получит все в одном массиве, что бы потом красиво четыре позиции передать календарю. Помогите добавить в запрос, команду, чтобы получить ячейки из postmeta.meta_key с именем 'Информация'
    Вот часть кода,

    Код (Text):
    1.  
    2.  
    3. $queryString = "SELECT * FROM $wpdb->posts
    4. LEFT JOIN $wpdb->postmeta ON($wpdb->posts.ID = $wpdb->postmeta.post_id)
    5. LEFT JOIN $wpdb->term_relationships ON($wpdb->posts.ID = $wpdb->term_relationships.object_id)
    6. LEFT JOIN $wpdb->term_taxonomy ON($wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id)
    7. LEFT JOIN $wpdb->terms ON($wpdb->term_taxonomy.term_id = $wpdb->terms.term_id)
    8. WHERE $wpdb->terms.name = 'Афиша'
    9. AND $wpdb->term_taxonomy.taxonomy = 'category'
    10. AND $wpdb->posts.post_status = 'publish'
    11. AND $wpdb->postmeta.meta_key = 'Дата'
    12. AND STR_TO_DATE(wp_postmeta.meta_value,'%d.%m.%y') >= STR_TO_DATE('$currentDate','%d.%m.%y')
    13. ORDER BY STR_TO_DATE($wpdb->postmeta.meta_value,'%d.%m.%y') asc limit $begin_limit,$post_per_page ";
    14.  
    15.  
    16. $posts = $wpdb->get_results($queryString);
    17.  
    18. function print_arr($arr)
    19. { echo '<pre>' . print_r($arr, true) . '</pre>'; }
    20. print_arr($posts);
    Вот то что я получаю .
    Код (Text):
    1.  
    2. Array
    3. ( [0] => stdClass Object
    4.   ( [ID] => 32175
    5.  [post_author] => 4
    6.  [post_date] => 2016-07-04 13:28:45
    7.  [post_date_gmt] => 2016-07-04 13:28:45
    8.  [post_content] => дирижёр — Дмитрий Филатов
    9.  [post_title] => Год российского кино.
    10.  [post_excerpt] =>
    11.  [post_status] => publish
    12.  [comment_status] => closed
    13.  [ping_status] => closed
    14.  [post_password] =>
    15.  [post_name] => %d0%b3%d0%be%d0%b4
    16.  [to_ping] =>
    17.  [pinged] =>
    18.  [post_modified] => 2016-07-05 12:33:25
    19.  [post_modified_gmt] => 2016-07-05 12:33:25
    20.  [post_content_filtered] =>
    21.  [post_parent] => 0
    22.  [guid] => http://192.168.0.140/b/?p=32175
    23.  [menu_order] => 0
    24.  [post_type] => post
    25.  [post_mime_type] =>
    26.  [comment_count] => 0
    27.  [meta_id] => 42318
    28.  [post_id] => 32175
    29.  [meta_key] => Дата
    30.  [meta_value] => 27.11.16
    31.  [object_id] => 32175
    32.  [term_taxonomy_id] => 106
    33.  [term_order] => 0
    34.  [term_id] => 106
    35.  [taxonomy] => category
    36.  [description] =>
    37.  [parent] => 0
    38.  [count] => 1039
    39.  [name] => Афиша
    40.  [slug] => %d0%b0%d1%84%d0%b8%d1%88%d0%b0
    41.  [term_group] => 0
    42.  )
    В этом массиве данные из postmeta.meta_key присутствуют:
    [meta_key] => Дата
    [meta_value] => 27.11.16

    Нужные мне данные я могу получить но отдельно, командами
    Код (Text):
    1.  
    2. foreach ($posts as $post) : setup_postdata($post);
    3.  $info = get_post_meta($post->ID, 'Информация', true);
    4. print_arr($info);
    Получаю то что нужно => Большой зал, 19:00

    Для календаря мне нужно получить всего 4 поля , из массива $posts ( знаю что запрос нужно сделать сразу после SELECT но сначала нужно получить четвертое поле )
    Код (Text):
    1.  
    2. [post_title] => Год российского кино. Мультконцерт.
    3. [guid] => http://192.168.0.140/b/?p=32175
    4. [meta_value] => 27.11.16
    5. И то что не достает
    6. [meta_value] => Большой зал, 19:00 из ( [meta_key] =>Информация  )
    Я не пишу новый запрос для календаря потому что, не так сильно еще владею работой с базой и оригинальный запрос выводит всю нужную информацию на сайт. Если для календаря попытаться написать новый запрос из базы, то возможно в календарь попадут лишние данные. По этому пытаюсь получить дополнительные данные в имеющийся массив из postmeta.meta_key , но что то не получается. Прошу помощи…