
Max
15.05.2017
17:31:51
Всем привет. Залип тут над задачей. В базе данных есть ячейка со словами "кошка,собака,попугай". Нужно чтобы при запросе к этой ячейки результат возвращался только тогда, когда в запросе есть именно три этих слова.
Т.е. при таком запросе ничего не возвращать:
SELECT * FROM anymals WHERE type LIKE "%кошка%"
А при таком возвращать:
SELECT * FROM anymals WHERE type LIKE "%кошка%" and type LIKE "%собака%" type LIKE "%попугай%

Evgeniy
15.05.2017
17:35:24
SELECT * FROM anymals WHERE type LIKE "%кошка\,собака\,попугай%"

F01134H
15.05.2017
17:35:41
не помню прост синтаксис лайка

Google

Evgeniy
15.05.2017
17:35:57
я тоже0

F01134H
15.05.2017
17:36:52

Evgeniy
15.05.2017
17:37:05
неа

F01134H
15.05.2017
17:37:06
как бы 3 условия, в каждом регулярка, должно находить

Evgeniy
15.05.2017
17:37:07
нат%
с разных сторон

F01134H
15.05.2017
17:37:15
аа

Evgeniy
15.05.2017
17:37:31
он кошку в середине текста ищет
чтобы спереди был любой символ до кошки
такого нет и бд его шлет
ему надо написать
"кошка%"

Max
15.05.2017
17:38:05
Сейчас попробую

Google

Evgeniy
15.05.2017
17:38:07
и будет ок
и с попугаем тоже самое
но наоборот
"%попугай"
ну и можно добавть OR

F01134H
15.05.2017
17:39:21

Evgeniy
15.05.2017
17:39:31
тогда like не сработает

F01134H
15.05.2017
17:39:38
разве?

Evgeniy
15.05.2017
17:39:51
ага это будет равносильно =

Max
15.05.2017
17:42:25
Так
Не так все :)
Первый запрос в таком случае тоже будет отдавать ответ
Короче я делаю бота для телеграмма и в базе есть запрос и ответ
И в случае если все слова из ячейки запроса совпадают, то нужно вывести ответ
А если не совпадают, то не вывести
if (stristr($mess, 'кошка') == true and stristr($mess, 'собака') == true and stristr($mess, 'попугай') == true) {
// тут ответ
}
Сейчас у меня так выглядит условие в коде. Нужно такой запрос к базе сформировать

Vadim
15.05.2017
18:04:39
Но равносильно, да

Google

Батыр
15.05.2017
18:09:48
я хз о чем вы, у меня все пашет
хотя в топку)

Stas
15.05.2017
18:13:08
Есть ли какой то по типу активного сканера - антивирус для сайта, т.е. если какой то файл новый или изменен размер, то он мне об этом увдомит

(;¬_¬)
15.05.2017
18:15:07
контроль версий поможет тебе

Stas
15.05.2017
18:16:24
ну мне желательно другой вариант, в виде скрипта который по крону выполняется что-ли
с уведомлением email хотя бы

Sergey
15.05.2017
18:17:24

Stas
15.05.2017
18:17:53
почему не правильный? Дополнительная безопасность

Sergey
15.05.2017
18:18:51
файлы должен изменять только root и владелец, под владельцем должен ходить только vcs/ci
а если у кого-то root появился на сервере, то уже ничего не спасет

Stas
15.05.2017
18:19:21
ну а допустим если я хочу что бы никто и не читал?
т.е. зловред залил шелл и решил всё скачать

Sergey
15.05.2017
18:20:03
ты просил только на создание/изменение

Stas
15.05.2017
18:20:26
ну, человек залил = создал файл

Sergey
15.05.2017
18:20:32
но у зловреда не должно быть возможности заливать

Stas
15.05.2017
18:20:34
или шелл внедрил в страницу = изменил

Sergey
15.05.2017
18:20:43
у него не будет прав

Stas
15.05.2017
18:20:47
понятно что не должно, но не всегда получается
я сам не администратор потому я настроить так не могу

Sergey
15.05.2017
18:21:15
любые изменения - через git

Google

Sergey
15.05.2017
18:22:47
без админа это тот еще велосипед получится

Stas
15.05.2017
18:23:26
ну я не хочу гит ставить все эти дела, потому вопрос задал так, что хочу систему отслеживания изменния файлов

Sergey
15.05.2017
18:23:57
как это без гита в 2017?

Vadim
15.05.2017
18:26:48

Admin
ERROR: S client not available

Stas
15.05.2017
18:27:09

Vadim
15.05.2017
18:27:22
Я так врубил эту штуку и мне сразу 30к писем пришло, т.к. криво настроил

Stas
15.05.2017
18:27:41
ну не я думал на php по крону что то

Vadim
15.05.2017
18:27:42
Вроде так называется...

Stas
15.05.2017
18:27:51
да, я посмотрел, так называется.

Sergey
15.05.2017
18:27:54

Vadim
15.05.2017
18:28:12

Stas
15.05.2017
18:28:28
я как уже говорил не сисадмин и сам такое не настрою

Vadim
15.05.2017
18:29:08
Тогда как нам тебе помочь, гит не хочешь, специальные инструменты для отслеживания не хочешь
Либо так, либо страдать

Stas
15.05.2017
18:29:39
вот по типу яндекс.манула только активное

Vadim
15.05.2017
18:29:54
При чем и гит, и специальные инструменты дополняют друг друга

(;¬_¬)
15.05.2017
19:01:41

Vadim
15.05.2017
19:04:56
Угу, если бы на все в мире было удобное, однокнопочное и надёжное решение, то админы были бы почти не нужны

(;¬_¬)
15.05.2017
19:05:21
и программисты тоже были бы не нужны

Google

(;¬_¬)
15.05.2017
19:05:26
всеж скрипты были бы написаны
их же только установить надо и все

Chuvi
15.05.2017
19:09:03
А в чём проблема написать несколько строк кода, запихать в крон и оповещать себя при изменении хэша какого-нить файла?
В SPL же есть всё это.
$dir_iterator = new RecursiveDirectoryIterator("/path");
$iterator = new RecursiveIteratorIterator($dir_iterator, RecursiveIteratorIterator::SELF_FIRST);
foreach ($iterator as $file) {
// сравнить что-нить с чем-то, убедиться что файл не менялся
}

Stas
15.05.2017
19:20:22

Chuvi
15.05.2017
19:22:20
Так вон, чуть выше - три строчки, по сути - итератор по всем файлам в директории и её поддиректориям. В цикле просто делай md5 файла и в первый раз сохрани куда-нить. Всё. Изменился - оповести себя. Но зачем для всего этого дела искать несколько часов решение, когда написать - 5 минут? )

Evgeniy
15.05.2017
19:22:56
тут програмировать надо
а надо чтобы зашел в чатик и написали

Chuvi
15.05.2017
19:23:25
Да не надо тут программировать - пример выше из доков...

F01134H
15.05.2017
19:31:31
Поцыки
толстые должны быть контроллеры или модели?

Артур Евгеньевич
15.05.2017
19:32:17
ни то не другое
но если выбирать из этого то модели