-
Posts
148 -
Joined
-
Last visited
-
Days Won
2
Content Type
Profiles
Forums
Calendar
Store
Posts posted by Jey Val Star
-
-
Все оказалось банально просто
вместо
FROM yii_news
указать
FROM {{%news}}
-
Я помню целый день задалбливал яндекс с проверкой по адресу на наличие микроразметки. Он постоянно говорил - "не найдена"... Хотя при этом если проверку по коду - то все ок.
В итоге к вечеру яндекс сдался и начал выдавать нормальную проверку по адресу...)))
-
Здравствуйте
Как в таком запросе указать название таблицы без префиксов
$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)
-
Здравствуйте.
есть некий сайт (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 поменяеться
-
Т.е. если я вас правильно понял - то такой способ написания приложения на ООП предпочтительней?
<?php $object = new Contoller(); $object->lang(); $object->view(); // .. //?>
Чем переход из метода в метод внутри методов?
-
Здравствуйте.
Подскажите как лучше (правильней) писать приложение с использованием ООП?
Имеется в виду создание объекта и дальнейшее указание методов.
пример
<?php $object = new Contoller(); $object->lang(); $object->view(); // .. //?>
Или все делать в самих методах и переходить из метода в метод
Пример
<?phpClass Controller{ function __construct() { // какой-то код $this->lang(); } function lang() { // какой-то код $this->view(); } function view() { // какой-то код }
Заранее спасибо
P.S. Прошу не задавать вопросы типа - "Зачем ООП пиши на процедурке?".
-
да, готов
$sql ='SELECT `name`,`alias`,`alias_full`,`parent`,`type` FROM uy4ib_menu WHERE `level` <= 2 ORDER by `order` ASC'; $result = $mysqli->query($sql); return $result;
-
вы запрос к bd сумели составить?
алгоритм можно использовать следующий:
берете все элементы с parent_id=0, после для каждого такого элемента берем всех его потомков, обычно для этого удобно использовать рекурсивную функцию, особенно если меню многоуровневое
т.е. вы предлагаете делать несколько запросов к БД? А одним никак нельзя?
Вытащить все пункты меню и потом выводить их
PS у меня в бд указана отдельная колонка для нумерации пунктов меню, поэтому я могу вытаскивать из БД эти пункты в нужном порядке
Какой у вас серверный язык?php
-
Здравствуйте.
Есть таблица в БД, в которой указаны пункты меню (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>
-
Нашел решение
Тему можно закрыть
-
Здравствуйте, есть бд состоящая из 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. Архитектуру БД изменять нельзя...
-
1) лучше разделить события на mouseenter и mouseleave
т.е. разделить hover на 2 отдельных события?
$('.menu li').mouseenter(function(){ $('ul',this).slideDown(100); });$('.menu li').mouseleave(function(){ $('ul',this).slideUp(100); });
-
Здравствуйте.
Есть сайт http://test.in-sites.ru/
У сайта выпадающее меню написанное на jQuery
$('.menu li').hover( function(){ $('ul',this).slideDown(100); }, function(){ $('ul',this).slideUp(100); } );
Работает хорошо, но при перемещении курсора с меню на подменю (особенно если вправо, или влево) то получается гадкий эффект подпрыгивания под.меню (пример пункт меню "О театре" -> под меню "Отзывы")
Подскажите пожалуйста в чем проблема
-
Не за что)
-
<?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++;
-
Занимаюсь созданием сайтов с 2008 года - и вердикт только один в ж*пу хостеров делай бекапы у себя на компе.
+ бесплатный сыр только в мышеловке, поэтому 100 рублей в месяц можно потратить на более менее хорошего хостера
- 1
-
не за что)))
Но есть маленькая поправка - если дизайн поменяется и понадобится выводить не 5 новостей, а 6 или 3 нужно будет лезть в код и менять цифорку в строке
$data = self::getListNews(5);
Поэтому лучше найти вернуть как было
$data = self::getListNews($args['count']);
А в админке найти настроку которая отвечает за вывод количетва новостей (если мне не изменяет понимание логики данного кода - то там будет указано 1 - т.к. у вас выводилась одна новость)
-
сделайте так
// заменить это$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++;}
- 1
-
У вас прикол скорее в том, что $listNews содержит 5 строк одной и тойже информации. Проверьте эту переменную функцией var_dump($listNews)
ээээ нет, вы выводите 1 новость и сами копируете ее 5 раз
внимательно почитайте про foreach
-
Здравствуйте
Есть сайт A и есть сайт B с одними и теми же пользователями
Как сделать такую штуку - если пользователь авторизовался на сайте A то он автоматически авторизовался и на сайте B и наоборот.
-
Я подумал, что изначально поле должно быть заполнено, а при отправке его нужно проверить.
Задача стоит именно проверить поле при отправке
Само поле заполняется всплывающим календарем (при фокусе появляется календарь и пользователь выбирает нужную ему дату), но возможность ручного ввода у пользователя то же есть.
-
Здравствуйте
Есть форма в которой есть input для ввода даты (формат даты - yyyy-mm-dd)
Как сделать проверку на jQuery что поле заполнено именно так?
-
Задача на математику
Я занал у тебя 100 рублей, но по пути в магазин потерял их. У магазина встретил сестру и занял у нее 50 рублей. В магазине я купил 2 шоколадки по 10 рублей. А оставшиеся 30 отдал тебе. И остался должен тебе 70 и сестре 50, но у меня еще есть 2 шоколадки общей стоимостью 20 рублей. Итого 140 рублей (70+50+20).
Вопрос - где еще 10 рублей?
Это простая задача с приколом, но многие мои товарищи не смогли ее решить...)))
-
Может и заменит, но не сегодня и не через год. Да и то вряд ли будет полная замена.
Вопрос по Yii2
in PHP
Posted
www