Вы не совсем поняли как это работает.
Скрипт не как ни связан с проектом на Laravel.
Он на отдельном домене генерирует готовую вьюху исходя из заданных параметров.
Эта вьюха сохраняется в проекте с Laravel и с ней уже работает верстальщик/программист, как с нормальной вьюхой.
Разумеется, никто не генерирует таким PHP скриптов вьюху в самом приложении Laravel :)
А как их генерить? Подскажите классное решение.
PHP скрипт генерирует HTML код.
Скажем так автоматическая верстка по параметрам, которые переданы в PHP скрипт. (шорткоды)
Этот код будет дорабатывать верстальщик, по этому он должен быть читабельным.
Когда проблемы с табуляцией, код становиться не читабельным и верстальщику приходиться табуляцию вручную проставлять.
Хотелось бы, чтобы скрипт это делал автоматически.
В том то и проблема.
Что все переменные берутся из БД.
Шорткод может стоять в любом месте.
По этому я не знаю куда вставлять \t и вообще какое их количество вставлять.
Прежде чем это писать, Вы сами смотрели то на Википедии информацию и на сколько она полная по всем городам России?
Удалось найти городские районы в формате SQL.
Прикрепляю к сообщению дамп базы.
Регионы и города России. А так же городские районы. Надеюсь кому-то пригодиться!
my.cnf
[mysqld] collation-server = utf8_general_ci character-set-server = utf8 local-infile=0 innodb_file_per_table = 1 pid-file = /var/run/mysqld/mysqld.pid datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 bind-address = 127.0.0.1 innodb-buffer-pool-size = 268435456 innodb-additional-mem-pool-size = 33554432 innodb-log-file-size = 5242880 innodb-log-buffer-size = 16777216 innodb-flush-log-at-trx-commit = 2 table-cache = 400 query-cache-size = 268435456 max-allowed-packet = 134217728 thread-cache-size = 16 query-cache-limit = 16777216 key-buffer-size = 4282384384 net-buffer-length = 67108864 read-buffer-size = 134217728 read-rnd-buffer-size = 134217728 sort-buffer-size = 67108864 tmp-table-size = 268435456 max-heap-table-size = 268435456 join-buffer-size = 268435456 myisam-sort-buffer-size = 67108864 aria-pagecache-buffer-size = 268435456 long-query-time = 1 table-open-cache = 2048 # Settings user and group are ignored when systemd is used. # If you need to run mysqld under a different user or group, # customize your systemd unit file for mariadb according to the # instructions in http://fedoraproject.org/wiki/Systemd [mysqld_safe] log-error=/var/log/mariadb/mariadb.log pid-file=/var/run/mariadb/mariadb.pid # # include all files from the config directory # !includedir /etc/my.cnf.d
innodb таблиц нет.
только Myisam.
Сервер:
Процессор 4 X QEMU Virtual CPU version 2.3.0 2399.996 MHz Оперативная память 2624 / 7822 MiB Размер дискового пространства 39.97 GiB Файл подкачки (swap) 0 MiB Средняя загрузка (1, 5, 15 мин) 0.42 0.32 0.28 Продолжительность работы 3 hours 44 minutes Количество процессов 161 Apache 2.4.6-45.el7.centos.4 MySQL 5.5.52-1.el7 PHP 5.4.16-42.el7 Perl 5.16.3-291.el7 Kernel 3.10.0-514.26.2.el7.x86_64
Да, несколько varchar полей выбираю.
SELECT `id`,`name`,`url` FROM `organization` WHERE `id` IN (123,345,346 ... 34534) AND `city`=518 AND `status`=1 ORDER BY `name` ASC LIMIT 0,20
Попробовал выбирать только id
SELECT `id` FROM `organization` WHERE `id` IN (123,345,346 ... 34534) AND `city`=518 AND `status`=1 ORDER BY `name` ASC LIMIT 0,20
Время выполнения примерно такое же.
Если есть строки с переменной длиной в БД, например название организации. Как быть?
Лучше оставить varchar или сделать char и пускай пробелами заполняется?
Спасибо за ответ.
1. Элементы идут не подряд.
2. Выбирается максимум 5-10% строк. В большинстве случаев не более 1%. (таблица 9 000 000 строк)
3. Да, знаю. Здесь так написал, чтобы сократить.