From 2714dad7cea767e4d3f2133bef559e30bb581ca5 Mon Sep 17 00:00:00 2001 From: stas Date: Wed, 26 Jun 2024 11:10:17 +0300 Subject: [PATCH] ver.0.4 --- Information.txt | 17 ++-- index.php | 11 --- info.php | 6 +- search.php | 14 ++-- src/Forms.php | 71 ---------------- src/file_db_driver/FileDatabaseDriver.php | 99 ++++++++++++++--------- views/form.php | 2 +- 7 files changed, 78 insertions(+), 142 deletions(-) delete mode 100644 src/Forms.php diff --git a/Information.txt b/Information.txt index b1af0df..7c5019a 100644 --- a/Information.txt +++ b/Information.txt @@ -1,11 +1,10 @@ -last_id=19;table_name=user_info +autoincrement=id;last_id=19;table_name=user_info id;surname;name;patronymic;dateOfBirth;gender;countryCode;phoneNumber;email;status -id;Фамилия;Имя;Отчество;Дата рождения;Пол;Код страны;Номер телефона;Email;Статус 3;Билай;Станислав;Романович;2002-03-11;Мужчина;+7;9493761924;stasbilay02@yandex.ru;0 -4;Иванова;Мария;Сергеевна;2002-04-05;Женжина;+38;2222222222;sdguhnlnoih@gmail.com;1 +4;Иванова;Мария;Сергеевна;2002-04-05;Женщина;+38;2222222222;sdguhnlnoih@gmail.com;1 5;Иванов;Иван;Иванович;2002-03-11;Мужчина;+7;1111111111;dsjgbdskgb@yandex.ru;1 -6;Плешкова;Анастасия;Денисовна;2006-11-10;Женжина;+7;3333333333;ple.anastasiya@gmail.com;0 -7;Зайцева;Анжела;Игоревна;1998-12-12;Женжина;+7;4444444444;aksjfhfka@mail.ru;0 +6;Плешкова;Анастасия;Денисовна;2006-11-10;Женщина;+7;3333333333;ple.anastasiya@gmail.com;0 +7;Зайцева;Анжела;Игоревна;1998-12-12;Женщина;+7;4444444444;aksjfhfka@mail.ru;0 8;Петров;Петр;Петрович;1987-03-02;Мужчина;+7;7777777777;jksghhsdkj@gmail.com;1 9;Зайцев;Федор;Александрович;2014-12-22;Мужчина;+7;6667774441;asert@mail.ru;1 10;Иванов;Петр;Михайлович;2002-03-11;Мужчина;+7;1111111111;asert@mail.ru;1 @@ -14,7 +13,7 @@ id;Фамилия;Имя;Отчество;Дата рождения;Пол;Ко 13;Билай;Станислав;Романович;4444-04-04;Мужчина;+7;9493761924;stasbilay02@yandex.ru;1 14;Билай;Станислав;Романович;4444-04-04;Мужчина;+7;9493761924;stasbilay02@yandex.ru;0 15;Билай;Станислав;Романович;4444-04-04;Мужчина;+7;9493761924;stasbilay02@yandex.ru;0 -16;Билай;Станислав;Романович;4444-04-04;Женщина;+38;9493761924;stasbilay02@yandex.ru;1 -17;Зайцева;Анжела;Игоревна;7777-07-07;Мужчина;+7;4444444444;aksjfhfka@mail.ru;1 -18;Зайцева;Анжела;Игоревна;7777-07-07;Мужчина;+7;4444444444;aksjfhfka@mail.ru;1 -19;Зайцева;Анжела;Игоревна;7777-07-07;Мужчина;+7;4444444444;aksjfhfka@mail.ru;1 +16;Билай;Станислав;Романович;4444-04-04;Женщина;+38;9493761924;stasbilay02@yandex.ru;0 +17;Зайцева;Анжела;Игоревна;7777-07-07;Женщина;+7;4444444444;aksjfhfka@mail.ru;0 +18;Зайцева;Анжела;Игоревна;7777-07-07;Женщина;+7;4444444444;aksjfhfka@mail.ru;1 +19;Зайцева;Анжела;Игоревна;7777-07-07;Женщина;+7;4444444444;aksjfhfka@mail.ru;1 diff --git a/index.php b/index.php index 17613aa..339305e 100644 --- a/index.php +++ b/index.php @@ -1,18 +1,7 @@ load($_REQUEST); @@ -19,6 +18,7 @@ $string = $fullInformation->toString(); $obj = new FileDatabaseDriver(); $obj->connect(__DIR__ . "/Information.txt"); +//$obj->updateServiceInfo($string); $obj->save($string); $obj->close(); diff --git a/search.php b/search.php index 4664b09..2beb516 100644 --- a/search.php +++ b/search.php @@ -10,19 +10,15 @@ $rep = new \src\file_db_driver\FileDatabaseDriver(); $rep->connect(__DIR__ . "/Information.txt"); $columnKeys = $rep->getHeadKeys(); -$columnValues = $rep->getHeadValues(); +//$columnValues = $rep->getHeadValues(); +$columnValues = ['id','Фамилия','Имя','Отчество','Дата рождения','Пол','Код страны','Номер телефона','Email','Статус']; $columns = array_combine($columnKeys, $columnValues); //$res = $rep->find([$_REQUEST['key'] => $_REQUEST['result_search']])->limit(7)->all(); -//$fooArr = [ -// 'surname' => 'Билай', -// 'dateOfBirth' => '4444-04-04', -// 'status' => '1', -// 'gender' => 'Мужчина' -//]; -//Debug::dd($_REQUEST); -$res = $rep->find($_REQUEST)->limit(10)->all(); + +//$res = $rep->find($_REQUEST)->limit(10)->all(); +$res = $rep->find(['name' => ['Станислав', 'Анастасия', 'Анжела'], 'status' => ['0']])->limit(10)->all(); $rep->close(); diff --git a/src/Forms.php b/src/Forms.php deleted file mode 100644 index 6ebf562..0000000 --- a/src/Forms.php +++ /dev/null @@ -1,71 +0,0 @@ -infoForm = ' -//
-// Фамилия:
-//

-// -// Имя:
-//

-// -// Отчество (если есть):
-//

-// -// Дата Рождения:
-//

-// -// Ваш пол:
-// Мужчина -// Женжина

-// -// Номер телефона (Например 1234567890):
-// -//

-// -// Email адрес:
-//

-// -// -// -//
'; -// -// $this->forSearchForm = ' -//
-//

-// Среди чего найти?
-//

-// -//
'; -// } -// -// public function getInfoForm(): string -// { -// return $this->infoForm; -// } -// -// public function getForSearchForm(): string -// { -// return $this->forSearchForm; -// } -//} \ No newline at end of file diff --git a/src/file_db_driver/FileDatabaseDriver.php b/src/file_db_driver/FileDatabaseDriver.php index e2711bb..af80b72 100644 --- a/src/file_db_driver/FileDatabaseDriver.php +++ b/src/file_db_driver/FileDatabaseDriver.php @@ -11,11 +11,9 @@ class FileDatabaseDriver public $file; public array $headKeys = []; public array $headValues = []; - private array $resArr = []; private array $query = []; private int $limitInt = 10; - public array $serviceInfo = []; public function connect(string $filePath): bool @@ -26,7 +24,7 @@ class FileDatabaseDriver if ($this->file) { $this->getServiceInfo(); $this->setHeadKeys(); - $this->setHeadValues(); +// $this->setHeadValues(); return true; } @@ -62,31 +60,26 @@ class FileDatabaseDriver return $this->headKeys; } - public function setHeadValues(): void - { - $headArr = explode(';', fgets($this->file)); - foreach ($headArr as $item){ - $item = str_replace("\n", "", $item); - $item = str_replace("\r", "", $item); - $this->headValues[] = $item; - } -// $this->head = explode(';', fgets($this->file)); - } - - public function getHeadValues(): array - { - return $this->headValues; - } +// public function setHeadValues(): void +// { +// $headArr = explode(';', fgets($this->file)); +// foreach ($headArr as $item){ +// $item = str_replace("\n", "", $item); +// $item = str_replace("\r", "", $item); +// $this->headValues[] = $item; +// } +//// $this->head = explode(';', fgets($this->file)); +// } +// +// public function getHeadValues(): array +// { +// return $this->headValues; +// } public function find(array $query): self { - $j = 0; foreach ($query as $key => $value) { - if(strlen($value) > 0) { - $this->query['column'][$j] = $key; - $this->query['value'][$j] = $value; - $j++; - } + $this->query[$key] = $value; } return $this; } @@ -103,33 +96,35 @@ class FileDatabaseDriver $resArr = []; $i = 1; while (!feof($this->file)) { - if ($i > $this->limitInt){ + if ($i > $this->limitInt) { break; } $str = fgets($this->file); - if (!empty($str)){ + if (!empty($str)) { $str = str_replace("\n", "", $str); $str = str_replace("\r", "", $str); $item = explode(";", $str); $item = array_combine($this->headKeys, $item); - $cnt = count($this->query['column']); - for ($j = 0; $j < $cnt; $j++) { - if (strlen($this->searchInStr($this->query['value'][$j], $item, $this->query['column'][$j])) > 0) { - $flag = true; - } else { - $flag = false; - break; + $flag = false; + foreach ($this->query as $key => $value) { + foreach ($this->query[$key] as $k => $v) { + if (strlen($this->searchInStr($v, $item, $key)) > 0) { + $flag = true; + break; + } else { + $flag = false; + } } + if(!$flag) break; } - if ($flag){ + if ($flag) { $resArr[] = $item; $i++; } } } - return $resArr; } @@ -155,10 +150,38 @@ class FileDatabaseDriver fclose($this->file); } +// public function updateServiceInfo(string $string): void +// { +// $id = $this->serviceInfo['last_id']; +// $this->serviceInfo['last_id'] = ++$id; +// foreach ($this->serviceInfo as $key => $value) { +// $arr[] = $key . '=' . $value; +// } +// $fileArr = file($this->filePath); +// if (isset($arr)) { +// $serviceStr = implode(';', $arr) . "\n"; +// } +// $fileArr[0] = $serviceStr; +// file_put_contents($this->filePath, $fileArr); +// +// $str = $id . ';' . $string; +// $this->save($str); +// } + public function save(string $string): void { -// $file = fopen($fileName, "a"); - fwrite($this->file, $string); -// fclose($file); + $this->serviceInfo['last_id']++; + foreach ($this->serviceInfo as $key => $value) { + $arr[] = $key . '=' . $value; + } + $fileArr = file($this->filePath); + if (isset($arr)) { + $serviceStr = implode(';', $arr) . "\n"; + } + $fileArr[0] = $serviceStr; + file_put_contents($this->filePath, $fileArr); + + $str = $this->serviceInfo['last_id'] . ';' . $string; + fwrite($this->file, $str); } } \ No newline at end of file diff --git a/views/form.php b/views/form.php index 2734861..5444843 100644 --- a/views/form.php +++ b/views/form.php @@ -24,7 +24,7 @@ Мужчина Женжина

Номер телефона (Например 1234567890):