Jump to content

Jey Val Star

User
  • Posts

    148
  • Joined

  • Last visited

  • Days Won

    2

Posts posted by Jey Val Star

  1. Я помню целый день задалбливал яндекс с проверкой по адресу на наличие микроразметки. Он постоянно говорил - "не найдена"... Хотя при этом если проверку по коду - то все ок.

    В итоге к вечеру яндекс сдался и начал выдавать нормальную проверку по адресу...)))

  2. Здравствуйте

     

    Как в таком запросе указать название таблицы без префиксов

    $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)

  3. Здравствуйте.

    есть некий сайт (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 поменяеться

  4. Здравствуйте.

    Подскажите как лучше (правильней) писать приложение с использованием ООП?

     

    Имеется в виду создание объекта и дальнейшее указание методов.

     

    пример

    <?php    $object = new Contoller();    $object->lang();    $object->view();    // .. //?>

    Или все делать в самих методах и переходить из метода в метод

     

    Пример

    <?phpClass Controller{        function __construct()    {       // какой-то код       $this->lang();    }        function lang()    {       // какой-то код       $this->view();    }    function view()    {       // какой-то код    }    

    Заранее спасибо

     

    P.S. Прошу не задавать вопросы типа - "Зачем ООП пиши на процедурке?".

     

  5. вы запрос к bd сумели составить?

    алгоритм можно использовать следующий:

    берете все элементы с parent_id=0, после для каждого такого элемента берем всех его потомков, обычно для этого удобно использовать рекурсивную функцию, особенно если меню многоуровневое

    т.е. вы предлагаете делать несколько запросов к БД? А одним никак нельзя?

    Вытащить все пункты меню и потом выводить их

    PS у меня в бд указана отдельная колонка для нумерации пунктов меню, поэтому я могу вытаскивать из БД эти пункты в нужном порядке

    Какой у вас серверный язык?

    php

  6. Здравствуйте.

    Есть таблица в БД, в которой указаны пункты меню (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> 
  7. Здравствуйте, есть бд состоящая из 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. Архитектуру БД изменять нельзя...

  8. Здравствуйте.

    Есть сайт http://test.in-sites.ru/ 

    У сайта выпадающее меню написанное на jQuery

    $('.menu li').hover(        function(){ $('ul',this).slideDown(100); },        function(){ $('ul',this).slideUp(100); }     );

    Работает хорошо, но при перемещении курсора с меню на подменю (особенно если вправо, или влево) то получается гадкий эффект подпрыгивания под.меню (пример пункт меню "О театре" -> под меню "Отзывы")

     

    Подскажите пожалуйста в чем проблема

  9. <?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++;
  10. Занимаюсь созданием сайтов с 2008 года - и вердикт только один в ж*пу хостеров делай бекапы у себя на компе.

    + бесплатный сыр только в мышеловке, поэтому 100 рублей в месяц можно потратить на более менее хорошего хостера

    • Like 1
  11. не за что)))

    Но есть маленькая поправка - если дизайн поменяется и понадобится выводить не 5 новостей, а 6 или 3 нужно будет лезть в код и менять цифорку в строке

    $data = self::getListNews(5);

    Поэтому лучше найти вернуть как было

    $data = self::getListNews($args['count']);

    А в админке найти настроку которая отвечает за вывод количетва новостей (если мне не изменяет понимание логики данного кода - то там будет указано 1 - т.к. у вас выводилась одна новость) 

  12. сделайте так

    // заменить это$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++;}
    • Like 1
  13. У вас прикол скорее в том, что $listNews содержит 5 строк одной и тойже информации. Проверьте эту переменную функцией var_dump($listNews)

    ээээ нет, вы выводите 1 новость и сами копируете ее 5 раз

    внимательно почитайте про foreach

  14. Я подумал, что изначально поле должно быть заполнено, а при отправке его нужно проверить. 

    Задача стоит именно проверить поле при отправке

    Само поле заполняется всплывающим календарем (при фокусе появляется календарь и пользователь выбирает нужную ему дату), но возможность ручного ввода у пользователя то же есть.

  15. Задача на математику

    Я занал у тебя 100 рублей, но по пути в магазин потерял их. У магазина встретил сестру и занял у нее 50 рублей. В магазине я купил 2 шоколадки по 10 рублей. А оставшиеся 30 отдал тебе. И остался должен тебе 70 и сестре 50, но у меня еще есть 2 шоколадки общей стоимостью 20 рублей. Итого 140 рублей (70+50+20).

    Вопрос - где еще 10 рублей?

    Это простая задача с приколом, но многие мои товарищи не смогли ее решить...)))

×
×
  • 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