А в абстрактной функции сделать вызов функции. Это нормальная идея или нет?
$count = $db->query('SELECT COUNT(id) as `all` FROM `table`')->fetch_object();
if($count->all == 5){
 $db->query('DELETE FROM `table` WHERE id > 0 ORDER BY `id`  ASC LIMIT 1');
}$db->query("INSERT INTO");      SELECT CONCAT('SELECT * FROM (',GROUP_CONCAT(CONCAT('SELECT ',QUOTE(tb),' Tables_in_database,
COUNT(1) "Number of Rows" FROM ',db,'.',tb) SEPARATOR ' UNION '),') A;')
INTO @sql FROM (SELECT table_schema db,table_name tb
FROM information_schema.tables WHERE table_schema = DATABASE()) A;
PREPARE s FROM @sql; EXECUTE s;SET @table=(SELECT DATABASE());
select @table;
SELECT 
     table_schema as `Database`, 
     table_name AS `Table`, 
     round(((data_length + index_length) / 1024 / 1024), 2) `Size in MB`,
     table_rows as 'Rows'
FROM information_schema.TABLES 
WHERE DATA_LENGTH > 0
ORDER BY (data_length + index_length) DESC;
if (e.value == arr[i]){
i++;
document.getElementById('form').reset();
event.preventDefault();
}
Эта строчка срабатывает, когда слово вводиться верно и оно пропадает с инпута при этом условии, если был нажат пробел, нужно что бы еще слово в диве после правильного ввода окрашивалось в зеленый цвет, так же при ошибке, слово становилось красным
нужно что бы еще слово в диве после правильного ввода окрашивалось в зеленый цвет, так же при ошибке, слово становилось красным
if (e.value == arr[i]){
$("#text").style.background = "green";
i++;
document.getElementById('form').reset();
event.preventDefault();
} else $("#text").style.background = "red"      let arr = 
[
	{
		"location":{
			"country":{
				"name":"Finland",
				"id":"FI"
			},
			"city":"Helsinki"
		}
	},
	{
		"location":{
			"country":{
				"name":"England",
				"id":"FI"
			},
			"city":"London"
		}
	},
	{
		"location":{
			"country":{
				"name":"Russian",
				"id":"RU"
			},
			"city":"Moskow"
		}
	},
	{
		"location":{
			"country":{
				"name":"Russian",
				"id":"RU"
			},
			"city":"Saint Petersburg"
		}
	},
	{
		"location":{
			"country":{
				"name":"Russian",
				"id":"RU"
			},
			"city":"Sevastopol"
		}
	},
];
let all = [];
let bool = true;
for (var i = 0; i < arr.length; i++) {
	for (var n = 0; n  <= all.length; n++) {
		if(all.length == 0) all.push({"country":arr[i].location.country.name,"city":[arr[i].location.city]});
		bool = true;
		for (var d = 0; d < all.length; d++) {
			if(all[d].country==arr[i].location.country.name){
				bool = false;
				if(all[d].city.indexOf(arr[i].location.city)<0)all[d].city.push(arr[i].location.city);
			};
		}
		if(bool)all.push({"country":arr[i].location.country.name,"city":[arr[i].location.city]});
	}
}
console.log(all)[
    {
        country: 'Finland',
        city: ['Helsinki']
    },
    {
        country: 'England',
        city: ['London']
    },
    {
        country: 'Russian',
        city: ['Moskow', 'Saint Petersburg', 'Sevastopol']
    }
]public struct CoOrds
{
    public int x, y;
    public CoOrds(int p1, int p2)
    {
        x = p1;
        y = p2;
    }
}
class TestCoOrds
{
    static void Main()
    {
        // Initialize:   
        CoOrds coords1 = new CoOrds();
        CoOrds coords2 = new CoOrds(10, 10);
        // Display results:
        Console.Write("CoOrds 1: ");
        Console.WriteLine("x = {0}, y = {1}", coords1.x, coords1.y);
        Console.Write("CoOrds 2: ");
        Console.WriteLine("x = {0}, y = {1}", coords2.x, coords2.y);
        // Keep the console window open in debug mode.
        Console.WriteLine("Press any key to exit.");
        Console.ReadKey();
    }
}Объект – конкретная реализация абстрактного типа, обладающий характеристиками состояния, поведения, индивидуальности.
Состояние – один из возможных вариантов условий существований объекта.
Поведение – описание объекта в терминах изменения его состояния и передача сообщений (данных) в процессе воздействия.
Индивидуальность – сущность объекта, отличающееся от других объектов.
Действие – деятельность или операция, которые должны быть выполнены над объектом.
const years = [['1981', '2001,2002', '1991', '1985,1986,1987'], ['1988', '2000,2002', '1991', '1987,1986,1992'], ['1991', '2003,2002', '1971', '1986,1985,2000']]
                   
const year = ['1981', '2002', '1891', '1985,1987'];
let free = [], matches = [], match = [];
for(var g=0;g<year.length;g++){
	free = year[g].split(',');
	for(var f=0;f<free.length;f++){
		for(var i=0;i<years.length;i++){
			for(var n=0;n<years[i].length;n++){
				match = years[i][n].split(',');
				for(var y=0;y<match.length;y++){
				if(match[y]==free[f])matches.push("in " + i + " on " + n + " is from " + g + " on " + f + " " + free[f]);
				}}}}}
				console.log(matches);      var all = parseInt($("SELECTOR").length);