PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (7): [1] 2 3 4 5 6 7 »

> Найдено сообщений: 103
SkaN Отправлено: 30 Августа, 2014 - 03:34:12 • Тема: Выборка из 2-х таблиц даже при том, что для полей одной таблицы может не существовать полей другой • Форум: Работа с СУБД

Ответов: 4
Просмотров: 828
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT `site_posts`.`ID` AS `id`, `site_posts`.`post_author` AS `author`, `site_posts`.`post_title` AS `title`, `site_posts`.`post_date_gmt` AS `date`, `yourls`.`url` AS `url`
  2. FROM `site_posts`
  3. LEFT JOIN (
  4.     SELECT `post_id`, `meta_value` AS `url`
  5.     FROM `site_postmeta`
  6.     WHERE `meta_key` = '_yourls_url'
  7. ) AS `yourls` ON `yourls`.`post_id` = `id`
  8. WHERE `post_date_gmt` > '2014-08-25 21:32:00'
  9. AND `post_type` = 'post'
  10. AND `post_status` = 'publish'

Вот такое решение. Сделал встроенный запрос, чтобы изолировать условие WHERE `meta_key` = '_yourls_url'. Если его добавить в основной запрос, то возвращается только то, что имеет такое поле.
SkaN Отправлено: 30 Августа, 2014 - 00:26:49 • Тема: Выборка из 2-х таблиц даже при том, что для полей одной таблицы может не существовать полей другой • Форум: Работа с СУБД

Ответов: 4
Просмотров: 828
CODE (SQL):
скопировать код в буфер обмена
  1. SET @start='2014-08-27 21:32:00';
  2. SELECT `site_posts`.`ID` AS `id`, `site_posts`.`post_author` AS `author`, `site_posts`.`post_title` AS `title`, `site_posts`.`post_date_gmt` AS `date`, `site_postmeta`.`meta_value` AS `url`
  3. FROM `site_posts`
  4. LEFT JOIN `site_postmeta` ON `site_postmeta`.`post_id` = `site_posts`.`ID`
  5. WHERE `post_date_gmt` > @start
  6. AND `site_postmeta`.`meta_key` = '_yourls_url'
  7. AND `post_type` = 'post'
  8. AND `post_status` = 'publish'
  9. AND `site_posts`.`post_author` NOT IN (202, 224, 226, 201, 200, 225)

Сделал так, выбираются только те посты, для которых есть поле _yourls, те, для которых нет, не выбираются вообще.
SkaN Отправлено: 29 Августа, 2014 - 07:17:46 • Тема: Выборка из 2-х таблиц даже при том, что для полей одной таблицы может не существовать полей другой • Форум: Работа с СУБД

Ответов: 4
Просмотров: 828
В заголовке очень сумбурно описал, потому что я не очень понимаю, как это описать лучше. Вот расширенное:
Есть две таблицы: одна с постами, а в другой есть все данные для постов (это Wordpress и его таблицы _posts и _postmeta). Во всех данных структура такая: entry_id, post_id, meta_key, meta_value. Для некоторых записей из таблицы _posts есть запись в таблице _postmeta, которая соответствует условию
CODE (SQL):
скопировать код в буфер обмена
  1. WHERE `_posts`.`post_id` = `_postmeta`.`post_id` AND `_postmeta`.`meta_key` = '_yourls'

Но в то же время для некоторых такой записи просто не существует, даже со значением NULL. То есть по запросу получается вытащить либо те посты, для которых есть _yourls, либо те, для которых нет. Я решил это UNION'ом, получилось так:
CODE (SQL):
скопировать код в буфер обмена
  1. SET @start='2014-08-27 21:32:00';
  2. SELECT * FROM (
  3.     SELECT `site_posts`.`ID` AS `id`, `site_posts`.`post_author` AS `author`, `site_posts`.`post_title` AS `title`, `site_posts`.`post_date_gmt` AS `date`, `site_postmeta`.`meta_value` AS `url`
  4.     FROM `site_posts`
  5.     LEFT OUTER JOIN `site_postmeta` ON `site_postmeta`.`post_id` = `site_posts`.`ID`
  6.     WHERE `post_date_gmt` > @start
  7.     AND `site_postmeta`.`meta_key` = '_yourls_url'
  8.     AND `post_type` = 'post'
  9.     AND `post_status` = 'publish'
  10.     AND `site_posts`.`post_author` NOT IN (202, 224, 226, 201, 200, 225)
  11.  
  12. UNION DISTINCT
  13.  
  14.     SELECT `site_posts`.`ID` AS `id`, `site_posts`.`post_author` AS `author`, `site_posts`.`post_title` AS `title`, `site_posts`.`post_date_gmt` AS `date`, NULL AS `url`
  15.     FROM `site_posts`
  16.     WHERE `post_date_gmt` > @start
  17.     AND `post_type` = 'post'
  18.     AND `post_status` = 'publish'
  19.     AND `site_posts`.`post_author` NOT IN (202, 224, 226, 201, 200, 225)
  20.     AND NOT EXISTS (
  21.         SELECT * FROM `site_postmeta` WHERE `site_postmeta`.`post_id` = `site_posts`.`ID` AND `site_postmeta`.`meta_key` = '_yourls_url'
  22.     )
  23. ) AS `new_posts`
  24. GROUP BY `author`, `title`
  25. ORDER BY `date` DESC;

Но тут наступает некоторая задница, потому что пусть запрос отрабатывает красиво, возвращая один набор данных, но сам запрос не до конца оптимизирован и почти что не расширяем. Теперь вопросы:
Как мне можно сначала выбрать посты по одинаковым условиям из обоих запросов? Подозреваю, что тут мне помогут вложенные SELECT'ы.
Другой вопрос: как мне можно в один набор данных объединить посты, для которых есть _yourls и посты, для которых нет, так, чтобы, если _youls есть, то он выбирался, а если нет, чтобы на его месте был NULL?
Спасибо за старания понять мою писанину Радость
SkaN Отправлено: 03 Февраля, 2014 - 05:08:11 • Тема: Письмо с текстом и тремя вложениями уходит без текста • Форум: Работа с сетью

Ответов: 0
Просмотров: 1046
Добрый день. Пытаюсь через сокеты отправить письмо с тремя вложениями (яндекс почта для домена). Оно уходит, но получаю я его без текста, только 3 вложения. Вот весь процесс отправки:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2.  >$ EHLO smtp.yandex.ru
  3. 220 smtp6.mail.yandex.net ESMTP (Want to use Yandex.Mail for your domain? Visit http://pdd.yandex.ru)
  4.  >$ AUTH LOGIN
  5. 250-smtp6.mail.yandex.net
  6. 250-8BITMIME
  7. 250-PIPELINING
  8. 250-SIZE 42991616
  9. 250-STARTTLS
  10. 250-AUTH LOGIN PLAIN
  11. 250-DSN
  12. 250 ENHANCEDSTATUSCODES
  13.  >$ encoded login
  14. 334 ...
  15.  >$ encoded password
  16. 334 ...
  17.  >$ MAIL FROM:sender@ololo.ru
  18. 250 2.1.0 <sender@ololo.ru> ok
  19.  >$ RCPT TO:recipient@ololo.ru
  20. 250 2.1.5 <recipient@ololo.ru> recipient ok
  21.  >$ DATA
  22. 354 Enter mail, end with "." on a line by itself
  23.  >$ Subject: =?utf-8?Q?some_encoded_nice subject
  24. From: =?utf8?Q?Sender name encoded?= <sender@ololo.ru>
  25. X-Mailer: FR-konsalt WEB mailer
  26. To: =?utf8?Q?= <recipient@ololo.ru>
  27. MIME-Version: 1.0
  28. Content-type: multipart/mixed; boundary="frkonsaltboundary"
  29. --frkonsaltboundary
  30. Content-type: text/html; charset="utf8"
  31. Content-Transfer-Encoding: base64
  32.  
  33. some text encoded by base64
  34.  
  35. --frkonsaltboundary
  36. Content-Type: application/vnd.openxmlformats-officedocument.presentationml.presentation; name="Наша презентация.pptx"
  37. Content-Transfer-Encoding:base64
  38. Content-Disposition:attachment
  39.  
  40. file encoded by base64
  41. --frkonsaltboundary
  42. Content-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document; name="Официальное положение.docx"
  43. Content-Transfer-Encoding:base64
  44. Content-Disposition:attachment
  45.  
  46. file encoded by base64
  47. --frkonsaltboundary
  48. Content-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document; name="Список документов.docx"
  49. Content-Transfer-Encoding:base64
  50. Content-Disposition:attachment
  51.  
  52. file encoded by base64
  53. frkonsaltboundary--
  54.  
  55.  >$ .
  56.  >$ QUIT
  57.  


Вот как-то так это все выглядит. Почему-то некоторые ответы сервера не записались, но судя по тому, что в целом-то письмо пришло, они хорошие.
SkaN Отправлено: 16 Января, 2013 - 16:06:09 • Тема: помогите с авторизацией • Форум: Вопросы новичков

Ответов: 12
Просмотров: 132
http://dev[dot]mysql[dot]com/doc/refman/[dot][dot][dot]reate-table[dot]html
Серьезно, не надо копировать готовые примеры. Лучше сначала разобраться
SkaN Отправлено: 08 Января, 2013 - 21:34:33 • Тема: PHP>>>>>m3u • Форум: Вопросы новичков

Ответов: 16
Просмотров: 536
Я подобное всегда в начало вставлял, но, вроде, нужно просто перед выводом вставить.
SkaN Отправлено: 08 Января, 2013 - 21:24:52 • Тема: PHP>>>>>m3u • Форум: Вопросы новичков

Ответов: 16
Просмотров: 536

Только взамен audio/m3u вставить mime тип этого формата (я не уверен, что его правильно написал)
SkaN Отправлено: 01 Января, 2013 - 18:37:14 • Тема: оцените сайт • Форум: Наработки по собственным проектам

Ответов: 5
Просмотров: 2005
Дизайн ничего так, только пара багов: панель слишком прозрачна, когда прокручиваешь страницу (не видно надписей меню) и при наведении меняется стиль всего меню. А если со вторым так и планировалось, то мб лучше сделать изменение стиля одной кнопочки?)
SkaN Отправлено: 27 Декабря, 2012 - 18:57:32 • Тема: замена html тегов на BB код • Форум: Вопросы новичков

Ответов: 11
Просмотров: 321
На эту тему есть много манов и готовых решений в сети, ищи в сторону регулярок
SkaN Отправлено: 23 Декабря, 2012 - 11:50:23 • Тема: вопрос по авторизации. • Форум: Вопросы новичков

Ответов: 2
Просмотров: 39
Не уверен, конечно, но почему у вас бекслеш в путях? заголовок Location по-моему понимает обычные слеши.
Также можете проверить, где вообще скрипт обрывается (повставляйте где-нибудь print("123") и посмотрите, где они закончат выводиться или установите профилировщик).
А еще я бы посоветовал вам немного изменить структуру БД: группу пользователя можно писать прям в записи юзера, тогда можно группу запрашивать одним запросом вместе с логином и паролем.
SkaN Отправлено: 28 Ноября, 2012 - 10:28:46 • Тема: Как передать методу аргументом ссылку на константу класса? • Форум: Объектно-ориентированное программирование

Ответов: 4
Просмотров: 1699
EuGen пишет:
Константа - это значение. Передаваться будет значение. Одно и то же значение могут иметь разные переменные/константы - и, как я уже писал, простейшие способ - передавать имя класса/объект класса в функцию.

Ага, я смекнул уже. Другой метод нашел Улыбка спасибо
SkaN Отправлено: 28 Ноября, 2012 - 09:10:37 • Тема: Как передать методу аргументом ссылку на константу класса? • Форум: Объектно-ориентированное программирование

Ответов: 4
Просмотров: 1699
Просто дело еще в том, что константа может находиться в любом классе, поэтому и нужно как-то передать ее с информацией о ней. Никак это без бубна сделать нельзя?
SkaN Отправлено: 28 Ноября, 2012 - 08:51:09 • Тема: Как передать методу аргументом ссылку на константу класса? • Форум: Объектно-ориентированное программирование

Ответов: 4
Просмотров: 1699
Идея такова: методу передается в качестве аргумента Class::CONST. Необходимо, чтобы метод получил не значение константы, а ссылку на константу, чтобы выяснить сначала, чья это константа, а потом работать с тем классом.
Вопрос таков: как заставить метод принять именно ссылку? Тут же вроде нельзя как с переменными, просто вставить & и радоваться... )
SkaN Отправлено: 25 Ноября, 2012 - 18:37:15 • Тема: Вывод текущей страницы с подменой урла сайта • Форум: Напишите за меня, пожалуйста

Ответов: 8
Просмотров: 2768
Редирект не подойдет?
SkaN Отправлено: 23 Сентября, 2012 - 21:58:51 • Тема: Не проходит авторизация через twitter с помощью HybridAuth • Форум: Работа с сетью

Ответов: 2
Просмотров: 1828
Проблема была вот в чем: в свойствах приложения на твиттере я указал Callback URL: localhost.ru (просто так), но ему нужен был реальный адрес для возврата. Решил проблему так: Callback URL сделал http://localhost.dev/, а в hosts прописал правило, чтобы с этого адреса был возврат на 127.0.0.1 и все встало на свои места. Для авторизации нужно использовать именно Consumer key и consumer secret

Страниц (7): [1] 2 3 4 5 6 7 »
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB