$element = $driver->findElement(WebDriverBy::cssSelector('body'));
$src = $element->getAttribute('innerHTML');
# или так
$src = $driver->executeScript("return document.body.innerHTML");
select rowid from numbers where num = 10;
delete from numbers where num = 10;
-- выбираем слудющую запись по rowid(10) + 1 -> 4+1
select num
from numbers
where rowid >= 5 -- 4+1
order by rowid
limit 1;
CREATE TABLE employees(id INT PRIMARY KEY, name VARCHAR(45), age INT);
INSERT INTO employees(id, name, age) VALUES (1,'John', 34);
INSERT INTO employees(id, name, age) VALUES (2,'Mary', 40);
INSERT INTO employees(id, name, age) VALUES (3,'Mike', 44);
SELECT JSON_PRETTY(JSON_ARRAYAGG(
JSON_OBJECT("id", id, "name", name, "age", age)
)) json
FROM employees
[
{
"id": 1,
"age": 34,
"name": "John"
},
{
"id": 2,
"age": 40,
"name": "Mary"
},
{
"id": 3,
"age": 44,
"name": "Mike"
}
]
select
replace(replace(replace(replace(phones,', ',' '),'"',''),'[',''),']','') phones
from clients;
isInvalid: function(input) {
return /@(gmail|yahoo)\.[a-z]+$/.test(input.value.trim().toLowerCase());
}
sudo chmod go+x /var
sudo chmod go+x /var/www
sudo chmod go+x /var/www/vhost
sudo chmod go+x /var/www/vhost/site2
sudo chmod go+x /var/www/vhost/site2/www
sudo chmod go+rwx /var/www/vhost/site2/www/file
select e.id, e.name
from employee e
join (
select employee_id
from empl_services es
join services s on s.id = es.service_id
where s.title in ('Крутит гайки','Носит ящики')
group by employee_id
having count(1) = 2
) t on t.employee_id = e.id
;
-- если id услуг известны то так:
select e.id, e.name
from employee e
join (
select employee_id
from empl_services es
where service_id in (1,3)
group by employee_id
having count(1) = 2
) t on t.employee_id = e.id
;
with
s as (
select id from services where title in ('Крутит гайки','Носит ящики')
),
r as (
select employee_id from empl_services es
join s on s.id = es.service_id
group by employee_id
having count(employee_id) = (select count(1) from s)
)
select *
from employee e
join r on r.employee_id = e.id
;
BULK INSERT LR1.dbo.Company
FROM '\\Mac\Home\Descktop\DB\data\Company.txt'
WITH (FORMAT = 'CSV'
, FIRSTROW=1
, FIELDTERMINATOR = ';'
, ROWTERMINATOR = '0x0a');
while($row = mysqli_fetch_array($res))
$res = mysqli_query($dbc, $query);
SELECT * FROM `pupils` WHERE class = 'НОМЕРКЛАССА' -- я допустил что колонка у вас называется class
SELECT DISTINCT class FROM `pupils` -- я допустил что колонка у вас называется class
<div class="cl">
<h3>НОМЕРКЛАССА</h3>
SELECT * FROM `pupils` WHERE class = 'НОМЕРКЛАССА' -- я допустил что колонка у вас называется class
<h4>ФИО</h4>
</div>
function recountItem(el_summ, el_quantity, n_price, e) {
action = e ? e.target.className.match(/\w+_+(\w+)/)[1] : '';
n_quantity = parseInt(el_quantity.text());
switch(action){
case 'plus':
case 'increment':
n_quantity ++;
break;
case 'minus':
case 'decrement':
n_quantity = n_quantity > 1 ? n_quantity - 1 : n_quantity;
break;
}
el_quantity.text(n_quantity);
el_summ.text(n_quantity * n_price + ' грн.');
};
//order
$('.order__block').each(function() {
var $e = $(this),
el_quantity = $e.find('.order__value'),
el_summ = $e.find('.order__sum'),
n_price = $e.find('.order__value').attr('data-number');
$e.find('.order__plus').click(function(e) {
recountItem(el_summ, el_quantity, n_price, e)
});
$e.find('.order__minus').click(function(e) {
recountItem(el_summ, el_quantity, n_price, e)
});
recountItem(el_summ, el_quantity, n_price);
});
//single
$('.single__row').each(function() {
var $e = $(this),
el_quantity = $e.find('.single__count'),
el_summ = $e.find('.single__price'),
n_price = $e.find('.single__count').attr('data-price');
$e.find('.single__increment').click(function(e) {
recountItem(el_summ, el_quantity, n_price, e)
});
$e.find('.single__decrement').click(function(e) {
recountItem(el_summ, el_quantity, n_price, e)
});
recountItem(el_summ, el_quantity, n_price);
});
//basket
$('.basket__item').each(function() {
var $e = $(this),
el_quantity = $e.find('.basket__value> span'),
el_summ = $e.find('.basket__sum'),
n_price = $e.find('.basket__single').text();
$e.find('.single__increment').click(function(e) {
recountItem(el_summ, el_quantity, n_price, e);
updateBasketTotalSum();
});
$e.find('.single__decrement').click(function(e) {
recountItem(el_summ, el_quantity, n_price, e);
updateBasketTotalSum();
});
recountItem(el_summ, el_quantity, n_price);
updateBasketTotalSum();
});
function updateBasketTotalSum() {
var sum = 0;
$('.basket__sum').each(function() {
sum += parseInt($(this).text());
});
$('.basket__count').text(sum + ' грн.');
}
$('.basket__close').on('click', function() {
$(this).parent().parent().remove();
});
document.querySelectorAll("button").forEach(el => el.addEventListener("mouseover", e => alert("Вы навели на кнопку: "+e.target.textContent)))
7-Zip 19.00 (x86) : Copyright (c) 1999-2018 Igor Pavlov : 2019-02-21
Usage: 7z [...] [...] [@listfile]
a : Add files to archive
b : Benchmark
d : Delete files from archive
e : Extract files from archive (without using directory names)
h : Calculate hash values for files
i : Show information about supported formats
l : List contents of archive
rn : Rename files in archive
t : Test integrity of archive
u : Update files to archive
x : eXtract files with full paths
-- : Stop switches and @listfile parsing
-ai[r[-|0]]{@listfile|!wildcard} : Include archives
-ax[r[-|0]]{@listfile|!wildcard} : eXclude archives
-ao{a|s|t|u} : set Overwrite mode
-an : disable archive_name field
-bb[0-3] : set output log level
-bd : disable progress indicator
-bs{o|e|p}{0|1|2} : set output stream for output/error/progress line
-bt : show execution time statistics
-i[r[-|0]]{@listfile|!wildcard} : Include filenames
-m{Parameters} : set compression Method
-mmt[N] : set number of CPU threads
-mx[N] : set compression level: -mx1 (fastest) ... -mx9 (ultra)
-o{Directory} : set Output directory
-p{Password} : set Password
-r[-|0] : Recurse subdirectories
-sa{a|e|s} : set Archive name mode
-scc{UTF-8|WIN|DOS} : set charset for for console input/output
-scs{UTF-8|UTF-16LE|UTF-16BE|WIN|DOS|{id}} : set charset for list files
-scrc[CRC32|CRC64|SHA1|SHA256|*] : set hash function for x, e, h commands
-sdel : delete files after compression
-seml[.] : send archive by email
-sfx[{name}] : Create SFX archive
-si[{name}] : read data from stdin
-slp : set Large Pages mode
-slt : show technical information for l (List) command
-snh : store hard links as links
-snl : store symbolic links as links
-sni : store NT security information
-sns[-] : store NTFS alternate streams
-so : write data to stdout
-spd : disable wildcard matching for file names
-spe : eliminate duplication of root folder for extract command
-spf : use fully qualified file paths
-ssc[-] : set sensitive case mode
-sse : stop archive creating, if it can't open some input file
-ssw : compress shared files
-stl : set archive timestamp from the most recently modified file
-stm{HexMask} : set CPU thread affinity mask (hexadecimal number)
-stx{Type} : exclude archive type
-t{Type} : Set type of archive
-u[-][p#][q#][r#][x#][y#][z#][!newArchiveName] : Update options
-v{Size}[b|k|m|g] : Create volumes
-w[{path}] : assign Work directory. Empty path means a temporary directory
-x[r[-|0]]{@listfile|!wildcard} : eXclude filenames
-y : assume Yes on all queries
"C:\Program Files (x86)\7-Zip\7z.exe" x -so G:\FIAS\fias_07.10.19.zip sql_file1.sql | G:\MySqlWork\mysql.exe -uroot -p 4830 newBase
"C:\Program Files (x86)\7-Zip\7z.exe" x -so G:\FIAS\fias_07.10.19.zip sql_file2.sql | G:\MySqlWork\mysql.exe -uroot -p 4830 newBase
Строчку 'valueDstidArr',r(CONCAT(`value_src`.id),`value_dst`.value) - concat заменить на group_concat не получается пишет что синтаксическая ошибка.
GROUP_CONCAT(DISTINCT JSON_OBJECT(
'value', `value_dst`.value,
'param_dst_id', `value_dst`.param_dst_id,
'type',param_type_id(`value_dst`.param_dst_id),
'ref_id',ref_id(`value_dst`.param_dst_id),
'title',param_title(`value_dst`.param_dst_id),
'valueDstidArr',r(CONCAT(`value_src`.id),`value_dst`.value)
)) AS `realValuesArr2`
...
JSON_OBJECT(
'value', `value_dst`.value,
'param_dst_id', `value_dst`.param_dst_id,
'type',param_type_id(`value_dst`.param_dst_id),
'ref_id',ref_id(`value_dst`.param_dst_id),
'title',param_title(`value_dst`.param_dst_id),
'valueDstidArr', GROUP_CONCAT( r(`value_src`.id,`value_dst`.value) )
) AS `realValuesArr2`
...