Форум Trainsim

Форум Trainsim (http://www.trainsim.ru/forum/index.php)
-   MSTS - Подвижной состав (http://www.trainsim.ru/forum/forumdisplay.php?f=18)
-   -   База данных подвижного состава (http://www.trainsim.ru/forum/showthread.php?t=10676)

Толяныч 17.07.2010 16:34

Игорь, 1680*1050, все отлично.

Zabor 17.07.2010 16:41

Спасибо Толяныч, но похоже придется переделывать, как говорится кто ищет - тот нарвется =))

Сам себе ответил - первая же ссылка порвет таблицу в хлам, не говоря уже про описание, заставлять вносить данные так, чтобы после обрезки вывода сохранялась информативная часть тоже не дело, спасибо ребятам, что вообще вводят данные, какие тут еще уловия.

Итого получается вертикальная форма запроса и вертикальный вывод результатов в блоках, плюсы: выведем всё, без обрезки и условий, можно положить на место меню, от него уже ничего не меняется.

минусы: ввод постраничной навигации иначе можно невзначай вывести 100-500 блоков и завесить сервер =))

add

Хотя стоп - можно проще, отлавливаем вывод 20 блоков (результатов), останавливаем вывод и вешаем блок с текстом "По Вашему запросу в базе более 20 результатов (20 показано), уточните свой запрос".

E69 17.07.2010 17:15

Может быть стоит в таких случаях выдавать список результатами поиска полностью, но отображая только короткие и наиболее информативные поля (скажем, имя локомотива), а если что-то заинтересует, тогда просматривать конкретную запись целиком, чтобы узнать ссылку, имя оператора и пр.?

Zabor 17.07.2010 19:31

Как в поисковиках..., уже думал об этом… получим минимум один лишний гарантированный реквест, и лишнюю форму вывода.

С позиции юзера - пришел, ввел зпрос в одно из полей (что знал из текста ошибки), нажал найти, увидел пару похожих результатов - жмякнул обе ссылки для более подробного просмотра страниц сайтов, там уже выбрал нужный вагон.

Если через дополнительную форму как в поиске, в данной ситуации придется открыть её минимум два раза, если юзер воспользуется кнопкой "назад" то еще раз повторим поиск, совсем плохо, учитывая, что частота запросов ограничена 10 сек, придется еще и ждать.

Главная задача выдать ссылку на страницу сайта или обменника (тьфу гадость какая) и помочь составить мнение о релевантности результата то/не то, переходить/не переходить.

ИМХО конечно, строчную сохранил, переделаю в блочную сравним, посмотрим, что получится.

add

Да, еще важный момент - выгрузив результаты в браузер юзера и записав IP во временные блокировки скрипт завершил работу, чтобы получить страницу с подробностями придется искать нужную строку БД повторно по ссылке из браузера, это уже два реальных реквеста без перехода назад, если результатов больше одного, то запросы начнут плодиться с удвоенной скоростью =))

add

Еще "новость" поле "тип" то совсем забыл, без его указания придется шерстить всю БД =))

Возможностей при вертикальной раскладке конечно больше и по идее глючить не должно, правда справа потерянное место, надо придумать, что туда навесить…

Выбор страны предлагаю ограничить:
"нет условия"
"Россия"
"Украина"
"Белоруссия"
"Латвия"
"что-то ещё"

Зачем там полный список типа Гваделупы и Гондураса? :D

[URL="http://zabor.dyndns.ws/msts/base_ps/"]Ссылка[/URL] гляньте еще раз, если не едет ничего, тогда пинаю скрипт, а оформление потом доведем до ума.

ps ненавижу IE [IMG]http://trainsim.ru/forum/images/smiles/spiteful.gif[/IMG]

Толяныч 17.07.2010 20:31

[QUOTE=Zabor;190222]Выбор страны предлагаю ограничить:
"нет условия"
"Россия"
"Украина"
"Белоруссия"
"Латвия"
"что-то ещё"
Зачем там полный список типа Гваделупы и Гондураса? :D [/QUOTE]
+1
[QUOTE][I][URL="http://zabor.dyndns.ws/msts/base_ps/"]Ссылка[/URL] гляньте еще раз, если не едет ничего, тогда пинаю скрипт, а оформление потом доведем до ума.[/I][/QUOTE]
Все вроде нормально отображается.
[QUOTE][I]ps ненавижу IE [IMG]http://trainsim.ru/forum/images/smiles/spiteful.gif[/IMG][/I][/QUOTE]
Аналогично :) .

art-trans 18.07.2010 00:26

Возможно я туплю - к БД поиск ещё не привязан? А то ввёл ЧС8-005 - ноль на массу.

Zabor 18.07.2010 02:21

Артем, конечно "еще не привязан" скрипт сам не пишется, только руками, а руки не такие длинные, чтобы за день написать =)), да и полдня сожрала форма, хорошо вовремя дошло, что "не тем путем идете товарищи".

Толяныч, спасибо, теперь скрипт пинаю.

Первым делом защита от [пи] и [пи-пи-пииии] и прочих личностей, которым плохо, когда другим хорошо...

Вот так "начнешь изучать семейные портреты…" нарвался на символ "_" в русских именах, например ВЛ80с-2261_2251, вопрос - оно так "официально" принято или как назовем (разрешим/запретим) так и поплывем?

И вот еще задачка для тех, кто PHP знает - значения переменных после проверки я обратно в форму возвращаю, ненавижу формы, где после нажатия "найти" приходится все опять набирать, а как вернуть значение поля со списком о_О, если верну "engine" или "RU" народ может не понять, если "локомотив" и "Россия" скрипт пошлет с такими значениями при отправке формы…

Как тут быть, лепить str_replace или есть более изящный подход?

===========================================

Перерыл весь гугул - ни хрена не нашел :confused:, все решения на ява, меня не устраивает, без явы большевики должны обходиться =)) [IMG]http://trainsim.ru/forum/images/smiles/spiteful.gif[/IMG]

Пришлось со своими мозгами созваниваться, выложу может кто тоже ищет, если подумать все оказалось очень просто, - в одной из option должен быть пункт "selected", это значение соответственно будет подставлено в поле, вместе с отображаемой строкой.

Дальше еще проще, скопипастив куски кода безусловной проверки значений выполняем условие, - если отправили значение поля (value), то у option в совпавшем поле появится "selected", в противном случае ничего не появится.

У поля по умолчанию еще одно условие - если ничего не отправляли (только загрузили форму) тогда selected этот пункт (поле "локомотив").

Собакой давим локальные ошибки т.к. при загрузке переменные неизвестны, а глобальное отключение ошибок можно забыть включить в скрипте и вот собственно код селектора:
[CODE]<select name="type">
<option value="engine"<?if ((@$_POST['type'])==='engine')echo'selected'; if (empty($_POST['type'])) echo'selected';?>>локомотив</option>
<option value="carriage"<?if ((@$_POST['type'])==='carriage') echo'selected';?>>пассажирский вагон</option>
<option value="freight"<?if ((@$_POST['type'])==='freight') echo'selected';?>>грузовой вагон</option>
<option value="tender"<?if ((@$_POST['type'])==='tender') echo'selected';?>>тендер</option>
</select>[/CODE]Для первого поля можно в принципе не задавать "selected" по условию empty($_POST['type'], оно и так первое, но не уверен, что по спецификации допустимо не указывать поле по умолчанию и хрен знает, как разные браузеры отработают, лучше все же задать, так спокойнее.

Да, код естественно valid для HTML 4.01 Transitional

Просьба оттестить (запинать) поля:

- тип подвижного состава
- имя русский
- имя английский
- папка единицы ПС
- описание единицы ПС
- приписан
- сайт

Они как бы готовы к передаче данных на обработку скриптом, принятые к исполнению значения выводятся внизу, род тока, страну и оператора завтра доделаю, если камрады недоработок не накопают. :D

DenS 18.07.2010 08:03

Всё отлично отображается.

aleksvt 18.07.2010 09:55

[B]Zabor[/B], Доброе дело делаешь! Мне нравится!

Zabor 18.07.2010 15:24

Все поля готовы, пинаем с особой жестокостью =)), скрипт обязан выдерживать любые посягательства на честь и достоинство сервера :rofl:

Задача - отловить ошибки в фильтрах, чтобы потом не было обидно, т.е. криминально попадание под запрет значений, которые могут присутствовать в именах, описаниях и т.д.

Информация в полях не должна затираться при запуске поиска во всех браузерах, но одно дело надеяться, другое проверить.

Тем временем спецификацию в Access поправлю, она сейчас не выгружает поле "сайт", когда делал форму решил, что оно необходимо для подбора ПС под сценарий, условием например, может быть "локомотив" "ВЛ80" "trainsim.ru".

Да и по сайтам наверняка кого-то "обидел", сайты брал из БД, дальше по алфавиту, постите сюда кого добавить, в БД ограничений нет, главное только без порнухи. :D

add

Перспектива родилась - а не сделать ли потом действительно онлайн правку и добавление данных, фильтровать не проблема, но ИМХО кто-то должен заниматься премодерацией правок и дополнений, сразу говорю - не я =)), хотя можно сделать поиск и по добавленным пользователями отдельно. Блин вперед забегаю, выходные кончатся и "хорошему делу" будет алес как обычно ((.

Zabor 18.07.2010 17:51

"записная книжка", (потом свои посты частично зачищу).
 
Первый блин пошел, пока только форма вывода для отлова багов, из найденных:

- вылезли чОртовы мейджиккавычки - автоэкранирование кавычек [B]\[/B]" в описаниях, не айс, надо подумать как локально вырубить (глобально эта гадость отключена).

- напрашивается str_replace по роду тока и стране перед выводом, чтобы выводить например "переменный" и "Россия"

Кто что заметит отписывайтесь.

Дальше, если не уроним сервер и не вылезет крутых багов поплыву в сторону preg_match_all с массой условий, т.е. поиск будет по алгоритму [B]"И"[/B], каждое заполненное поле сокращает вывод, выводится только та запись в которой есть совпадения по всем полям, в которых указаны условия поиска.

Могу тупить, если что не так поправляйте…

E69 18.07.2010 18:17

[URL=http://s19.radikal.ru/i192/1007/a8/5905ba284d23.jpg][IMG]http://s19.radikal.ru/i192/1007/a8/5905ba284d23t.jpg[/IMG][/URL]

Zabor 18.07.2010 18:25

Скрипт локомотивами подавился =)), это нормально он пока тупо выводит всю базу, указанную в первом поле, в локомотивах числится 1180 записей, он их все и пытается вывести =))

Естественно это тестовый бред, выдача больше 100 будет ограничиваться, правда, нужно очень постараться создать такие условия поиска, чтобы 100 записей им ответило.

Тестовый перерыв так сказать, пока теститься обдумываю стратегию отбора записей и заодно если баги есть лучше сейчас, в режиме запредельных нагрузок отловим.

ps больше 40% CPU пока не загружался, это радует.

add пошло поле "имя русский"

Zabor 18.07.2010 21:15

Артем, что за "*" в поле сайт? ЭР9 вроде же с твоего сайта?

Кстати поищи их по русским именам, заодно проверишь корректность ввода, я там себе все ноги переломал ))).

Даже если неизвестно (обменник) мы там вводим "-" без кавычек, а не "*" т.к. "-" я удалю, а "*" что за Баскервиль в БД?

Кстати баг выполз - "-" для ПС с обменников (только в этом случае в поле сайт допустимо "-") нужно это тире замочить перед выводом =))

art-trans 19.07.2010 01:01

* - это три старых ЭР9 с доната. С недавнего времени они перевыложены по моей инициативе на trains.ucoz.ru, который опять таки по моей инициативе планируется превратить в некий бесплатный склад дополнений.


Текущее время: 01:50. Часовой пояс GMT +4.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. Перевод: zCarot
© 2001-2019, Администраторы и разработчики Клуба Trainsim