Jump to content

Jey Val Star

User
  • Posts

    148
  • Joined

  • Last visited

  • Days Won

    2

Everything posted by Jey Val Star

  1. Все оказалось банально просто вместо FROM yii_newsуказать FROM {{%news}}
  2. Я помню целый день задалбливал яндекс с проверкой по адресу на наличие микроразметки. Он постоянно говорил - "не найдена"... Хотя при этом если проверку по коду - то все ок. В итоге к вечеру яндекс сдался и начал выдавать нормальную проверку по адресу...)))
  3. Здравствуйте Как в таком запросе указать название таблицы без префиксов $sql = 'SELECT month(y.`date`) as `month`, ( SELECT COUNT(*) FROM yii_news y2 WHERE month(y2.`date`) = `month` AND year(y2.`date`) = :year ) as `count` FROM yii_news y WHERE year(y.`date`) = :year GROUP by `month` ORDER by `date` DESC';return Yii::$app->db->createCommand($sql, [':year'=>$year])->queryAll();Или создать такой запрос через строитель запросов (ActiveRecords)
  4. Здравствуйте. есть некий сайт (http://expertkonsult.ru/) на сайте есть страницы http://expertkonsult.ru/sro/vstuplenie-v-sro.htmlв которой указаны города. Но эти города как бы сами по себе http://expertkonsult.ru/vstuplenie-v-sro-i-dopuski-sro-v-astraxani.html так же есть хлебные крошки (http://prntscr.com/7l4fa5), но из-за отсутствия привязки страницы в хлебных крошках нет возможности вернуться на под раздел Вопрос Как реализовать "правильно" вывод в ХК подразделы от текущей страницы при условии что страницу привязывать к другим страницам нельза - URL поменяеться
  5. Т.е. если я вас правильно понял - то такой способ написания приложения на ООП предпочтительней? <?php $object = new Contoller(); $object->lang(); $object->view(); // .. //?>Чем переход из метода в метод внутри методов?
  6. Здравствуйте. Подскажите как лучше (правильней) писать приложение с использованием ООП? Имеется в виду создание объекта и дальнейшее указание методов. пример <?php $object = new Contoller(); $object->lang(); $object->view(); // .. //?>Или все делать в самих методах и переходить из метода в метод Пример <?phpClass Controller{ function __construct() { // какой-то код $this->lang(); } function lang() { // какой-то код $this->view(); } function view() { // какой-то код } Заранее спасибо P.S. Прошу не задавать вопросы типа - "Зачем ООП пиши на процедурке?".
  7. да, готов $sql ='SELECT `name`,`alias`,`alias_full`,`parent`,`type` FROM uy4ib_menu WHERE `level` <= 2 ORDER by `order` ASC'; $result = $mysqli->query($sql); return $result;
  8. т.е. вы предлагаете делать несколько запросов к БД? А одним никак нельзя? Вытащить все пункты меню и потом выводить их PS у меня в бд указана отдельная колонка для нумерации пунктов меню, поэтому я могу вытаскивать из БД эти пункты в нужном порядке php
  9. Здравствуйте. Есть таблица в БД, в которой указаны пункты меню (id | name | alias | parent_id) parent_id - id родительского пункта меню Вопрос как вывести список пунктов меню в несколько уровней? <ul> <li>Пункт 1 <ul class="submenu"> <li>Подпункт 1</li> <li>Подпункт 2</li> </ul> </li> <li>Пункт 2 <ul class="submenu"> <li>Подпункт 1</li> <li>Подпункт 2</li> </ul> </li> <li>Пункт 3</li> <li>Пункт 4 <ul class="submenu"> <li>Подпункт 1</li> <li>Подпункт 2</li> </ul> </li></ul>
  10. Нашел решение Тему можно закрыть
  11. Здравствуйте, есть бд состоящая из 3-х таблиц товары | связь товаров-параметров | параметры Для вывода товаров по 4 параметрам есть запрос sql который выполняется в течении 3,5 сек SELECT off.id as id, off.dopublic as dopublic, off.automatic as automatic, off.url as url, off.name as name, off.offer_type_id as offer_type_id, off.original_id as original_id, off.meta_title as meta_title, off.meta_keywords as meta_keywords, off.meta_description as meta_description , MAX(IF(mop.param_id = 1, mpv.value_str, NULL)) AS idref , MAX(IF(mop.param_id = 16, mpv.value_file, NULL)) AS part_info_serial , MAX(IF(mop.param_id = 17, mpv.value_str, NULL)) AS manufacturer , GROUP_CONCAT(IF(mop.param_id = 21, mpv.value_str, NULL) ORDER BY IF(mop.param_id = 21, mpv.value_str, NULL) SEPARATOR ', ') as group_name , MAX(IF(mop.param_id = 25, mpv.value_str, NULL)) AS price_range , MAX(IF(mop.param_id = 26, mpv.value_file, NULL)) AS combinations , MAX(IF(mop.param_id = 18, mpv.value_file, NULL)) AS warehouse_info_serial , MAX(IF(mop.param_id = 23, mpv.value_str, NULL)) AS description_full , MAX(IF(mop.param_id = 22, mpv.value_int, NULL)) AS total_qty , MAX(IF(mop.param_id = 24, mpv.value_str, NULL)) AS description_short , MAX(IF(mop.param_id = 27, mpv.value_str, NULL)) AS kit , MAX(IF(mop.param_id = 30, mpv.value_datetime, NULL)) AS photo_date , MAX(IF(mop.param_id = 28, mpv.value_double, NULL)) AS min_old_price , MAX(IF(mop.param_id = 3, mpv.value_double, NULL)) AS price , GROUP_CONCAT(IF(mop.param_id = 4, mpv.value_str, NULL) ORDER BY IF(mop.param_id = 4, mpv.value_str, NULL) SEPARATOR ', ') as photo , MAX(IF(mop.param_id = 29, mpv.value_str, NULL)) AS articul , GROUP_CONCAT(IF(mop.param_id = 6, mpv.value_str, NULL) ORDER BY IF(mop.param_id = 6, mpv.value_str, NULL) SEPARATOR ', ') as material_name , GROUP_CONCAT(IF(mop.param_id = 7, mpv.value_str, NULL) ORDER BY IF(mop.param_id = 7, mpv.value_str, NULL) SEPARATOR ', ') as material_color , GROUP_CONCAT(IF(mop.param_id = 8, mpv.value_str, NULL) ORDER BY IF(mop.param_id = 8, mpv.value_str, NULL) SEPARATOR ', ') as probe_name , GROUP_CONCAT(IF(mop.param_id = 9, mpv.value_str, NULL) ORDER BY IF(mop.param_id = 9, mpv.value_str, NULL) SEPARATOR ', ') as weight_name , GROUP_CONCAT(IF(mop.param_id = 10, mpv.value_str, NULL) ORDER BY IF(mop.param_id = 10, mpv.value_str, NULL) SEPARATOR ', ') as size_name , GROUP_CONCAT(IF(mop.param_id = 11, mpv.value_str, NULL) ORDER BY IF(mop.param_id = 11, mpv.value_str, NULL) SEPARATOR ', ') as count_stones , GROUP_CONCAT(IF(mop.param_id = 12, mpv.value_str, NULL) ORDER BY IF(mop.param_id = 12, mpv.value_str, NULL) SEPARATOR ', ') as stone_name , GROUP_CONCAT(IF(mop.param_id = 13, mpv.value_str, NULL) ORDER BY IF(mop.param_id = 13, mpv.value_str, NULL) SEPARATOR ', ') as stone_color , GROUP_CONCAT(IF(mop.param_id = 14, mpv.value_str, NULL) ORDER BY IF(mop.param_id = 14, mpv.value_str, NULL) SEPARATOR ', ') as total_karat , GROUP_CONCAT(IF(mop.param_id = 15, mpv.value_str, NULL) ORDER BY IF(mop.param_id = 15, mpv.value_str, NULL) SEPARATOR ', ') as stone_clean , GROUP_CONCAT(IF(mop.param_id = 19, mpv.value_str, NULL) ORDER BY IF(mop.param_id = 19, mpv.value_str, NULL) SEPARATOR ', ') as stone_cut , GROUP_CONCAT(IF(mop.param_id = 20, mpv.value_str, NULL) ORDER BY IF(mop.param_id = 20, mpv.value_str, NULL) SEPARATOR ', ') as stone_type FROM mag_off as off LEFT JOIN mag_off_param as mop ON (mop.offer_id=off.id)LEFT JOIN mag_param_val as mpv ON (mpv.id=mop.param_value_id)WHERE(off.dopublic = 1)GROUP BY off.idHAVING ( (GROUP_CONCAT(CONCAT('A', IF(mop.param_id = 21, mpv.id, NULL),'B') SEPARATOR ',') LIKE ('%A210000033B%')) OR (GROUP_CONCAT(CONCAT('A', IF(mop.param_id = 21, mpv.id, NULL),'B') SEPARATOR ',') LIKE ('%A210000055B%')) OR (GROUP_CONCAT(CONCAT('A', IF(mop.param_id = 21, mpv.id, NULL),'B') SEPARATOR ',') LIKE ('%A210000081B%')) OR (GROUP_CONCAT(CONCAT('A', IF(mop.param_id = 21, mpv.id, NULL),'B') SEPARATOR ',') LIKE ('%A210000108B%')) ) AND ( (GROUP_CONCAT(CONCAT('A', IF(mop.param_id = 25, mpv.id, NULL),'B') SEPARATOR ',') LIKE ('%A250000003B%')) ) AND ( (GROUP_CONCAT(CONCAT('A', IF(mop.param_id = 6, mpv.id, NULL),'B') SEPARATOR ',') LIKE ('%A600000001B%')) ) AND ( (GROUP_CONCAT(CONCAT('A', IF(mop.param_id = 12, mpv.id, NULL),'B') SEPARATOR ',') LIKE ('%A120000004B%')) OR (GROUP_CONCAT(CONCAT('A', IF(mop.param_id = 12, mpv.id, NULL),'B') SEPARATOR ',') LIKE ('%A120000021B%')) OR (GROUP_CONCAT(CONCAT('A', IF(mop.param_id = 12, mpv.id, NULL),'B') SEPARATOR ',') LIKE ('%A120000025B%')) OR (GROUP_CONCAT(CONCAT('A', IF(mop.param_id = 12, mpv.id, NULL),'B') SEPARATOR ',') LIKE ('%A120000077B%')) ) ORDER BY (MAX(IF(mop.param_id = 3, mpv.value_double, NULL))=0), price DESCLIMIT 0,20Как его можно изменить, сохранив возможности и при этом ускорить до 0,35 сек? PS товаров 1500, параметров более 35 000, записей в связке 44 000. Архитектуру БД изменять нельзя...
  12. т.е. разделить hover на 2 отдельных события? $('.menu li').mouseenter(function(){ $('ul',this).slideDown(100); });$('.menu li').mouseleave(function(){ $('ul',this).slideUp(100); });
  13. Здравствуйте. Есть сайт http://test.in-sites.ru/ У сайта выпадающее меню написанное на jQuery $('.menu li').hover( function(){ $('ul',this).slideDown(100); }, function(){ $('ul',this).slideUp(100); } );Работает хорошо, но при перемещении курсора с меню на подменю (особенно если вправо, или влево) то получается гадкий эффект подпрыгивания под.меню (пример пункт меню "О театре" -> под меню "Отзывы") Подскажите пожалуйста в чем проблема
  14. <?php ?> это обозначает открытие (<?php) и закрытие (?>) блока кода PHP. А на сколько я понял перед этим вы не закрываете блок кода. К тому же вы делаете возврат значения из метода (return $html;) Поэтому ссылку тоже надо запихнуть в переменную $html $html .= '<div class="news'.$i.'"><div class="descriptions'.$i.'"><p class="for-news">'.$news['title'].'</p><a href="news/<?php echo $news['url']; ?>" ><p>'.mb_substr(strip_tags(PM::stripShortcodes($news['description'])), 0, 140, 'utf-8').'</p></a></div><img src='.SITE.'/uploads/news/two/'.$news['image_url'].' alt='.$news['title'].' /></div>'; $html .= '<a href="news/'.$news['url'].'" >....</a>';$i++;
  15. Занимаюсь созданием сайтов с 2008 года - и вердикт только один в ж*пу хостеров делай бекапы у себя на компе. + бесплатный сыр только в мышеловке, поэтому 100 рублей в месяц можно потратить на более менее хорошего хостера
  16. не за что))) Но есть маленькая поправка - если дизайн поменяется и понадобится выводить не 5 новостей, а 6 или 3 нужно будет лезть в код и менять цифорку в строке $data = self::getListNews(5);Поэтому лучше найти вернуть как было $data = self::getListNews($args['count']);А в админке найти настроку которая отвечает за вывод количетва новостей (если мне не изменяет понимание логики данного кода - то там будет указано 1 - т.к. у вас выводилась одна новость)
  17. сделайте так // заменить это$data = self::getListNews($args['count']);// на это$data = self::getListNews(5);и вместо вашего кода foreach ($listNews as $news) { $html .= '<div class="news"><div class="descriptions"><p class="for-news">'.$news['title'].'</p><p>'.mb_substr(strip_tags(PM::stripShortcodes($news['description'])), 0, 140, 'utf-8').'</p></div><img src='.SITE.'/uploads/news/'.$news['image_url'].' alt='.$news['title'].' /></div><div class="news1"><div class="descriptions1"><p class="for-news">'.mb_substr(strip_tags(PM::stripShortcodes($news['description'])), 0, 140, 'utf-8').'</p></div><img src='.SITE.'/uploads/news/'.$news['image_url'].' alt='.$news['title'].' /></div><div class="news2"><div class="descriptions2"><p class="for-news">'.$news['title'].'</p><p text-color="white">'.mb_substr(strip_tags(PM::stripShortcodes($news['description'])), 0, 140, 'utf-8').'</p></div><img src='.SITE.'/uploads/news/'.$news['image_url'].' alt='.$news['title'].' /></div><div class="news2"><div class="descriptions3"><p class="for-news">'.$news['title'].'</p><p text-color="white">'.mb_substr(strip_tags(PM::stripShortcodes($news['description'])), 0, 140, 'utf-8').'</p></div><img src='.SITE.'/uploads/news/'.$news['image_url'].' alt='.$news['title'].' /></div><div class="news3"><div class="descriptions4"><p class="for-news">'.$news['title'].'</p><p text-color="white">'.mb_substr(strip_tags(PM::stripShortcodes($news['description'])), 0, 140, 'utf-8').'</p></div><img src='.SITE.'/uploads/news/'.$news['image_url'].' alt='.$news['title'].' /></div>'; }вставить такой код $i=1;foreach ($listNews as $news) {$html .= '<div class="news'.$i.'"><div class="descriptions'.$i.'"><p class="for-news">'.$news['title'].'</p><p>'.mb_substr(strip_tags(PM::stripShortcodes($news['description'])), 0, 140, 'utf-8').'</p></div><img src='.SITE.'/uploads/news/'.$news['image_url'].' alt='.$news['title'].' /></div>';$i++;}
  18. У вас прикол скорее в том, что $listNews содержит 5 строк одной и тойже информации. Проверьте эту переменную функцией var_dump($listNews) ээээ нет, вы выводите 1 новость и сами копируете ее 5 раз внимательно почитайте про foreach
  19. Здравствуйте Есть сайт A и есть сайт B с одними и теми же пользователями Как сделать такую штуку - если пользователь авторизовался на сайте A то он автоматически авторизовался и на сайте B и наоборот.
  20. Задача стоит именно проверить поле при отправке Само поле заполняется всплывающим календарем (при фокусе появляется календарь и пользователь выбирает нужную ему дату), но возможность ручного ввода у пользователя то же есть.
  21. Здравствуйте Есть форма в которой есть input для ввода даты (формат даты - yyyy-mm-dd) Как сделать проверку на jQuery что поле заполнено именно так?
  22. Задача на математику Я занал у тебя 100 рублей, но по пути в магазин потерял их. У магазина встретил сестру и занял у нее 50 рублей. В магазине я купил 2 шоколадки по 10 рублей. А оставшиеся 30 отдал тебе. И остался должен тебе 70 и сестре 50, но у меня еще есть 2 шоколадки общей стоимостью 20 рублей. Итого 140 рублей (70+50+20). Вопрос - где еще 10 рублей? Это простая задача с приколом, но многие мои товарищи не смогли ее решить...)))
  23. Может и заменит, но не сегодня и не через год. Да и то вряд ли будет полная замена.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy