Displaying 51-60 of 275 results.
Resolved: MySQL задание менеджер, продукт, заявки, продажы. Задача из собеседования - PHP разработчик
posted by admin on March 16, 2016
Даны следующие две таблицы:

--
-- Структура таблицы `claim`
--
CREATE TABLE IF NOT EXISTS `claim` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`manager_id` int(11) NOT NULL,
`created_at` datetime NOT NULL,
`sum` float NOT NULL,
PRIMARY KEY (`id`),
KEY `manager_id` (`manager_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=9 ;
--
-- Дамп данных таблицы `claim`
--

INSERT INTO `claim` (`id`, `manager_id`, `created_at`, `sum`) VALUES
(1, 1, '2013-07-18 10:23:08', 256.128),
(2, 3, '2013-07-18 13:29:49', 512.1),
(3, 4, '2013-07-19 16:29:07', 123),
(4, 4, '2013-07-18 17:35:53', 321),
(5, 4, '2013-06-19 15:31:46', 756),
(6, 1, '2013-06-05 10:47:26', 265),
(7, 2, '2013-05-31 20:27:38', 354),
(8, 4, '2013-07-17 15:48:20', 798.12);
----------------------------------------------------------

--
-- Структура таблицы `manager`
--
CREATE TABLE IF NOT EXISTS `manager` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`first_name` varchar(32) CHARACTER SET latin1 NOT NULL,
`last_name` varchar(32) CHARACTER SET latin1 NOT NULL,
`email` varchar(32) CHARACTER SET latin1 NOT NULL,
`chief_id` int(11) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `chief_id` (`chief_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ;
--
-- Дамп данных таблицы `manager`
--
INSERT INTO `manager` (`id`, `first_name`, `last_name`, `email`, `chief_id`) VALUES
(1, 'Simple', 'Manager', '', 2),
(2, 'Super', 'Manager', '', NULL),
(3, 'Third ', 'Manager', '', 2),
(4, 'Just', 'Manager', '', NULL);

--
-- Ограничения внешнего ключа таблицы `claim`
--
ALTER TABLE `claim`
ADD CONSTRAINT `claim_ibfk_1` FOREIGN KEY (`manager_id`) REFERENCES `manager` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;

--
-- Ограничения внешнего ключа таблицы `manager`
--
ALTER TABLE `manager`
ADD CONSTRAINT `manager_ibfk_1` FOREIGN KEY (`chief_id`) REFERENCES `manager` (`id`) ON DELETE SET NULL ON UPDATE CASCADE;


Задача 1

Напишите sql-запрос, выбирающий информацию по каждому менеджеру, включая количество связанных с ним заявок и их общую сумму (в 2 дополнительных поля: claim_count, claim_total_sum).


Задача 2

Напишите запрос, который выведет двух менеджеров, у которых количество связанных заявок меньше, чем у остальных. При этом, объедините значения first_name и last_name в одно поле full_name.
Read more
Wiki: Responsive multilevel menu with Bootstrap 3 - Second and Third level submenuwiki
posted by admin on August 18, 2016
HTML

<div class="navbar navbar-default navbar-fixed-top" role="navigation">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="#">NavBar</a>
</div>
<div class="collapse navbar-collapse">
<ul class="nav navbar-nav navbar-right">
<li><a href="https://github.com/fontenele/bootstrap-navbar-dropdowns" target="_blank">GitHub Project</a></li>
</ul>
<ul class="nav navbar-nav">
<li class="active"><a href="#">Home</a></li>
<li>
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Menu 1 <b class="caret"></b></a>
<ul class="dropdown-menu multi-level">
<li><a href="#">Action</a></li>
<li><a href="#">Another action</a></li>
<li><a href="#">Something else here</a></li>
<li class="divider"></li>
<li><a href="#">Separated link</a></li>
<li class="divider"></li>
<li><a href="#">One more separated link</a></li>
<li class="dropdown-submenu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown</a>
<ul class="dropdown-menu">
<li><a href="#">Action</a></li>
<li class="dropdown-submenu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown</a>
<ul class="dropdown-menu">
<li class="dropdown-submenu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown</a>
<ul class="dropdown-menu">
<li><a href="#">Action</a></li>
<li><a href="#">Another action</a></li>
<li><a href="#">Something else here</a></li>
<li class="divider"></li>
<li><a href="#">Separated link</a></li>
<li class="divider"></li>
<li><a href="#">One more separated link</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Menu 2 <b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="#">Action</a></li>
<li><a href="#">Another action</a></li>
<li><a href="#">Something else here</a></li>
<li class="divider"></li>
<li><a href="#">Separated link</a></li>
<li class="divider"></li>
<li><a href="#">One more separated link</a></li>
<li class="dropdown-submenu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown</a>
<ul class="dropdown-menu">
<li><a href="#">Action</a></li>
<li><a href="#">Another action</a></li>
<li><a href="#">Something else here</a></li>
<li class="divider"></li>
<li><a href="#">Separated link</a></li>
<li class="divider"></li>
<li class="dropdown-submenu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown</a>
<ul class="dropdown-menu">
<li class="dropdown-submenu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown</a>
<ul class="dropdown-menu">
<li><a href="#">Action</a></li>
<li><a href="#">Another action</a></li>
<li><a href="#">Something else here</a></li>
<li class="divider"></li>
<li><a href="#">Separated link</a></li>
<li class="divider"></li>
<li><a href="#">One more separated link</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div><!--/.nav-collapse -->
</div>
</div>

CSS

.dropdown-submenu {
position: relative;
}

.dropdown-submenu>.dropdown-menu {
top: 0;
left: 100%;
margin-top: -6px;
margin-left: -1px;
-webkit-border-radius: 0 6px 6px 6px;
-moz-border-radius: 0 6px 6px;
border-radius: 0 6px 6px 6px;
}

.dropdown-submenu:hover>.dropdown-menu {
display: block;
}

.dropdown-submenu>a:after {
display: block;
content: " ";
float: right;
width: 0;
height: 0;
border-color: transparent;
border-style: solid;
border-width: 5px 0 5px 5px;
border-left-color: #ccc;
margin-top: 5px;
margin-right: -10px;
}

.dropdown-submenu:hover>a:after {
border-left-color: #fff;
}

.dropdown-submenu.pull-left {
float: none;
}

.dropdown-submenu.pull-left>.dropdown-menu {
left: -100%;
margin-left: 10px;
-webkit-border-radius: 6px 0 6px 6px;
-moz-border-radius: 6px 0 6px 6px;
border-radius: 6px 0 6px 6px;
}
Read more
Resolved: Yii CGridView buttons url target _blank not working
posted by admin on April 25, 2016
I try to target _blank my CGridView buttons

<?php $this->widget('zii.widgets.grid.CGridView', array(
'id'=>'media-grid',
'dataProvider'=>$media->searchadmin(),
'filter'=>$media,
'columns'=>array(
'id',
. . .
array(
'class'=>'CButtonColumn',
'template'=>'{view}{update}',
'buttons'=>array
(
'update' => array(
'url'=>'CController::createUrl("/media/update/id/{$data->primaryKey}")',
'target'=>'_blank',
),
'view' => array(
'url'=>'CController::createUrl("/media/view/id/{$data->primaryKey}")',
'target'=>'_blank',
),
),
),

),
)); ?>
Read more
Resolved: Bxslider height not responsive when resize
posted by admin on March 17, 2016
bxslider height not responsive, when I resize window, width is OK, but height not changeRead more
Resolved: PHP Curl with login password create empty cookie and can't login to account
posted by admin on August 2, 2017

function bin_write($file, $str, $mode = 'w'){
$fd = fopen($file, $mode);
$result = fwrite($fd, $str);
fclose($fd);
chmod($file, 0777);
return $result;
}

function mycurlFunction($login, $password){
$user_agent = 'User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:15.0) Gecko/20100101 Firefox/15.0.1';

$cookies = dirname(__FILE__) . '/cookie/cookie_'.md5($login).'.txt';

if(!file_exists($cookies))
bin_write($cookies, '', 'w');

if (!is_writeable($cookies))
return "Cannot write to $cookies";

if ( ! extension_loaded('curl'))
return "You need to load/activate the curl extension.";

$ch = curl_init();
curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);

curl_setopt($ch, CURLOPT_ENCODING, "gzip");
curl_setopt($ch, CURLOPT_AUTOREFERER, 1);

curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);

curl_setopt($ch, CURLOPT_COOKIEFILE, $cookies);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookies);

curl_setopt($ch, CURLOPT_POST, false);

$url = "there is your website url/auth?Password=$password&Login=$login";
curl_setopt($ch, CURLOPT_URL, $url);
$html = curl_exec($ch);
curl_close($ch);
return $html;
}

Curl create empty cookie 0B and not login to my account. How to resolve itRead more
Wiki: Установка Yii под XAMPP в Windows 8wiki
posted by admin on January 21, 2016
Здесь я подробно расскажу, как установить Yii - фрэймфорк под популярную сборку веб-сервера XAMPP в операционной системе Windows 8.

Для работы Yii - фрэймфорка, необходим PHP версии 5.1 и выше, a в ближайшем будущем появится новая версия фрэймворка в которой уже понадобится как минимум версия 5.3.

Для работы с проектами на локальном компьютере на данный момент я использую XAMPP 3.0.12 c версией php 5.4. Скачать XAMPP можно здесь.

Лично я настроил XAMMP так, что все проекты у меня хранятся на диске D в папке PHP, чего и вам советую.

Что касается самого yii-фрэймворка, скачть его можно здесь. Пример развертывания проекта у меня будет происходить на версии yii 1.1.4.

Создаем в папке php новую папку с проектом. Я назвал ее learn.loc. Далее, для нового проекта настраиваем виртуальные хосты и т.д.. В общем, все стандартные действия, чтобы после введения в строку браузера http://learn.loc ваш проект не послал вас на 404 или куда-то в подобном направлении.

Распакуем в корень папки learn.loc скачанный фрэймворк.

Теперь настало время консоли windows. Вывзываем консоль (надеюсь, как это сделать объяснять не надо) и вводим такое заклинание:

C:/xampp/php/php.exe C:/xampp/htdocs/learn.loc/framework/yiic webapp C:/xampp/htdocs/learn.loc/

Где C:/xampp/php/php.exe - путь до исполняемого файла php, C:/xampp/htdocs/learn.loc/framework/yiic - путь до файла во вреймворке, который развертывает проект, а C:/xampp/htdocs/learn.loc/ - путь куда мы хотим развернуть проект.

Далее, в консоли у нас спросят, внтатуре ли мы отвечем за базар. Вводим y (yes) и наслаждаемся бегущими строчками на черном экране. Типа вы архитектор матрицы.

На этом всё. Делее можете проверить, работает ли проект, введя в браузер http://learn.locRead more
Resolved: Syntaxhighlighter can't find any brushes after ajax request
posted by admin on December 25, 2015
After implementing pagination on my website, I was not able to highlight the code with SyntaxHighliter plugin. After AJAX call script was throwing an error: "Can't find brush for: BRUSH".Read more
Resolved: PHP date or datetime to Yesterday, Today
posted by admin on March 30, 2016
In my social website, I want to convert datetimes in format, like
Today
YesterdayRead more
Resolved: Access to Font at from origin has been blocked by CORS policy
posted by admin on August 4, 2017
I have two websites - two different domains.
In style css I have font-face and include fonts from the same domain

@font-face {
font-family: "wr-icons";
font-style: normal;
font-weight: 400;
src:
url("../font/cbh-icons.eot") format("embedded-opentype"),
url("../font/cbh-icons.woff") format("woff"),
url("../font/cbh-icons.ttf") format("truetype"),
url("../font/cbh-icons.svg") format("svg");
}

It is working perfect on fonts owner domain, But when I trying to include from these fonts from the seconds domain, I got an errors like

Access to Font at 'https://isystems.am/font/cbh-icons.ttf' from origin 'http://lifestyle.am' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://lifestyle.am' is therefore not allowed access.

Server Side is Ubuntu 16.04 with NginXRead more
Wiki: MySQL: отличия между MyISAM и InnoDBwiki
posted by admin on March 9, 2016
Отличия между системами хранения данных MyISAM и InnoDB простым языком.

В данной таблице я попробовал показать разницу между MyISAM и InnoDB на простых примерах:


Транзакционный движек?
Транзакция (Transaction) — блок операторов SQL , который в случае ошибки в одном запросе, возвращается к предыдущему состоянию (Rollback), и только в случае выполнения всех запросов подтверждается (Commit)

MyISAM Нет
InnoDB Да


Поддержка внешних ключей.
Внешние ключи — это способ связать записи в двух таблицах по определенным полям так, что при обновлении поля в родительской автоматически происходит определенное изменение поля в дочерней (дочернюю и родительскую выбираешь при создании ключа; точнее, создаешь ключ в дочерней, который ссылается на родительскую).

MyISAM Нет
InnoDB Да


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

MyISAM Блокировка на уровне таблиц
InnoDB Блокировка на уровне строкк


Одновременные запросы к разным частям таблицы.

MyISAM Медленнее
InnoDB Быстрее


При смешанной нагрузке в таблице (select/update/delete/insert)

MyISAM Медленнее
InnoDB Быстрее


Операция Insert

MyISAM Быстрее
InnoDB Медленнее, ибо есть оверхед на транзакцию, но это цена надежности


Если преобладают операции чтения (SELECT)

MyISAM Работает быстрее
InnoDB Работает медленнее


Deadlock.
Deadlock — ситуация в многозадачной среде или СУБД, при которой несколько процессов находятся в состоянии бесконечного ожидания ресурсов, захваченных самими этими процессами.

MyISAM Не возникают
InnoDB Возможны


Поддержка полнотекстового поиска

MyISAM Да
InnoDB Нет (доступен начиная с версии MySQL 5.6.4)


Запрос Count(*)

MyISAM Быстрее
InnoDB Медленнее


Поддержка mysqlhotcopy.
Утилита mysqlhotcopy представляет собой Perl-сценарий, использующий SQL-команды LOCK TABLES, FLUSH TABLES и Unix-утилиты cp или scp для быстрого получения резервной копии базы данных.

MyISAM Да
InnoDB Нет


Файловое хранение таблиц

MyISAM Каждой таблице отдельный файл
InnoDB Данные при настройках по умолчанию хранятся в больших совместно используемых файлах


Бинарное копировании таблиц?
Табличные файлы можно перемещать между компьютерами разных архитектур и разными операционными системами без всякого преобразования.

MyISAM Да
InnoDB Нет


Размер таблиц в БД

MyISAM Меньше
InnoDB Больше


Поведение в случае сбоя

MyISAM Крашится вся таблица
InnoDB По логам можно все восстановить


В случае хранения «логов» и подобного

MyISAM Лучше
InnoDB Хуже

Выводы:
  • Использовать MyISAM лучше в таблицах, которых преобладает один вид доступа: чтение (новостной сайт) или запись (например, логирование) ;
  • Использование InnoDB имеет смысл во всех остальных случаях и случаях повышенных требований по сохранности данных.
Read more