РАССЫЛКИ ПОРТАЛА RFPRO.RU Лучшие эксперты по данной тематикеНомер выпуска: | 1238 | Дата выхода: | 28.08.2011, 13:00 | Администратор рассылки: | Устинов С.Е. (Профессионал) | Подписчиков / экспертов: | 278 / 140 | Вопросов / ответов: | 3 / 7 |
Консультация # 44010: Здравствуйте, уважаемые эксперты! Очень нужна ваша помощь. Есть три таблицы MySQL: вакцины, страны-производители и консерванты. вакцины: id AUTO_INCREMENT, country INT, kons TINYTEXT. страны :id AUTO_INCREMENT, country VARCHAR(30). консерванты: id AUTO_INCREMENT, country VARCHAR(30). Никак не получатся посторить запрос на поиск вакц... Консультация # 180344: Здравствуйте. скажите пожалуйста как при помощи htaccess можно сделать реврайт урл, то есть мы заходим на HTTPS://site.ru/dir/file.php, ссылка не меняется, а данные берутся с HTTP://site.ru/dir/file.php... и можно ли таким образом *запутать* браузер, и предотвратить покаж сообщений о непроверенном сертификате? если нет, то подскажите пожалуйс... Консультация # 32139: Не подкажете алгоритм перебора символов.... Т.е. из массива символов создаётся база паролей от 1 до n символов. Помогите, пжлуста....А то уже две ночи не сплю, не получается...
Консультация # 44010: Здравствуйте, уважаемые эксперты! Очень нужна ваша помощь. Есть три таблицы MySQL: вакцины, страны-производители и консерванты. вакцины: id AUTO_INCREMENT, country INT, kons TINYTEXT. страны :id AUTO_INCREMENT, country VARCHAR(30). консерванты: id AUTO_INCREMENT, country VARCHAR(30). Никак не получатся посторить запрос на поиск вакцины с использованием checkbox`ов. Т.е. выбираем несколько стран, несколько консервантов, и достаются из таблицы те вакцины, которые произведены в этих странах и не содержат данных консервантов. Подскажите, пожалуйста!!! Дата отправки: 23.05.2006, 18:09 Вопрос задал: Андрющенко Вячеслав Васильевич Всего ответов: 3 Страница онлайн-консультации »
Консультирует Zysoftik (Студент): Здравствуйте, Андрющенко Вячеслав Васильевич!
У Вас есть несколько путей:
1. Использовать функцию MySQL POSITION (str IN fld). Это поиск вхождения строк одной в другую. Ф-ция возвращает 0 если строка не найдена. Вы можете написать в условии выборки так: where ..... and ((POSITION[\'консервант1\'] IN vakc.kons)=0 and (POSITION[\'консервант8\'] IN vakc.kons)=0).
2. Использовать функцию MySQL REGEXP, которая работает с регулярными выражениями. Синтаксис:
поле REGEXP "регулярное_выражение"
Эта конструкция сама по себе условие, т.е. при нахождении по регулярному выражению в указанном поле фрагмента конструкция вернет истину. В противном случае - ложь.
Консультирует Константин: Здравствуйте, Андрющенко Вячеслав Васильевич! Приведенная БД не может ответить на этот запрос только с помощью SQL. Можно доствать, парсить, но это не интересно. Правильно сделать так: Таблица с консервантами(kons): ID(primary key) KonsName CountryID(index) Таблица со странами(countries): ID(primary key) ContryName Таблица с вакцинами(vact): ID(primary key) VactName Вспомогательная таблица, отражающая связь N:M между вакцинами и консервантами(vact_kons): VactID KonsID (primary key на двух полях) Теперь допустим у нас есть страны с номерами 1,2 и консерванты, которых не должно быть номер
3,4. SQL-запрос: SELECT vact.VactName FROM ((countries INNER JOIN kons ON kons.CountryID=countries.ID) INNER JOIN vact_cons ON vact_kons.KonsID=kons.ID) INNER JOIN vact ON
vact_cons.VactID=vact.ID WHERE (countries.ID=1 OR countries.ID=2) AND kons.ID<>3 AND kons.ID<>4;
Этот запрос объединяет 4 таблицы с помощью их ключевых атрибутов (полей), извлекает из них
всех только поле с названием вакцины и выбирает из всех записей те, у которых страна
такая-то или такая-то, а консервантов таких-то нет.
Из своих чекбоксов ты получаешь IDшники, их и ставишь.
2 совета: 1)привязывайся к сути задачи, а не к "чекбоксам". Здесь суть в том, что тебе нужен
SQL-запрос, над ним и надо думать. Чекбоксы - это так, для прикола :)) 2)почитай любую хорошую книгу по БД (Дейт, например), искать в Яндексе.
Консультирует PVS@Lviv (Профессионал): Здравствуйте, Андрющенко Вячеслав Васильевич! Конечно не помешала бы таблица с двумя полями: ID_вакцины,ID_консерванта. В нее нужно вносить соответствующие записи при создании записи о вакцине. Но можно и с Вашим способом помучатся:
$countrylist=implode(",",$selected_countries); $konservlist=implode("%\')and not(kons like \'%",$selected_konservants); $request="select * from vakcines where (country in (".$countrylist."))and(kons like \'%".$konservlist."%\')"; /*Для отладки:*/ echo $request;
Консультация # 180344: Здравствуйте. скажите пожалуйста как при помощи htaccess можно сделать реврайт урл, то есть мы заходим на HTTPS://site.ru/dir/file.php, ссылка не меняется, а данные берутся с HTTP://site.ru/dir/file.php... и можно ли таким образом *запутать* браузер, и предотвратить покаж сообщений о непроверенном сертификате? если нет, то подскажите пожалуйста как можно предотвратить появление данных предупреждений, без покупки сертификата, и при этом получать данные с урл HTTPS://***/**/**.** без шифрования
заранее спасибо :) Дата отправки: 17.10.2010, 12:40 Вопрос задал: Герасимов Виталий Владиславович (6-й класс) Всего ответов: 1 Страница онлайн-консультации »
Консультирует Николай Владимирович / Н.В. (Администратор): Здравствуйте, Герасимов Виталий Владиславович!
Привожу для рассылки ход решения из мини-форума. Есть непроверенный сертификат и небезопасные элементы на страницы. Это разные вещи. Непроверенность сертификата можно исправить только покупкой сертификата. Небезопасные элементы - это такие, которые берутся с http на странице, открытой по http s. От этого можно избавиться, если все подключаемые элементы (графика, таблицы стилей и пр. будут браться с http s ) По rewrite. К сожалению, не могу проверить, как это будет работать при ssl, но есть гарантированный способ имея один файл со скриптом вызывать его и по https, и по http - использовать ссылки. Если у Вас сайт работает на *nix системе, то для создания ссылки воспользуйтесь командой ln. Команда будет выглядеть так: Код : ln -s /source/dir/file.php /new/dir/file.php Это для случая, если у Вас исходный файл находится в папке /source/dir, а новый надо создать в папке /new/dir Можно сделать линк на целую папку. Для Windows есть аналог на файловых системах NTFS. Почитать можно, например, здесь: URL >>ну дело в том, что https это зеркало http, по этому ссылки тут не помогут) по этому имхо тут может быть 2 решения 1) приобрести сертификат 2)Сделать редирект на http через .htaccess Прошу прощения за некорректно заданный вопрос. А можете подробнее рассказать, в чем состоит задача и почему надо скрипт брать именно с http ? Приобретение сертификата не спасет от небезопасных элементов, о которых я написал выше. Оно только сделает настоящим используемый сертификат. С редиректом можем помочь ну дело в том, что исчадие ада(IE) все время жаловался на небезопасные элементы на стороннем сервере, где использовался ssl в качестве основного протокола, когда я вживлял в него http ссылки исчадие ада ругалось на небезопасные элементы на странице, когда я сменил ссылки на Https то данных сообщений не было, но и сам код с моего сервера не подгружался(JS) из-за того что был не подписанный сертификат после подписания проблема была решена... но все же хотелось бы узнать, можно ли мод реврайтом как ни будь сделать подмену и самого протокола передачи не изменяя внешний вид ссылки, или же сделать редирект с https на http, один раз у меня получалось, но потом я случайно затер код..и больше так и не смог найти того решения. [q=Николай Владимирович / Н.В. @ 22.10.2010, 12:47] Попробуйте использовать описанный здесь вариант: URL >> Цитата:Код : Сообщение от alxz on 22-Июн-03, 01:45 (MSK) ВОТ ВАМ ВСЕМ ГОТОВОЕ РЕШЕНИЕ: htaccess: RewriteEngine On RewriteRule ^(/)?rambler/(.*)$ http://www.rambler.ru/$2 [P,QSA] Только ссылки на документах rambler-а должны быть, понятное дело, относительными. Вот и все. [/q]Благодарю)) добавьте в ответ поставлю оценку) Рад, что смогли помочь. Обращайтесь еще! | Консультировал: Николай Владимирович / Н.В. (Администратор) Дата отправки: 22.10.2010, 14:285 Большое спасибо за оперативный отклик на данную проблему :) и за консультацию по данному вопросу ;) ----- Дата оценки: 22.10.2010, 14:31 | Рейтинг ответа: 0 |
Консультация # 32139: Не подкажете алгоритм перебора символов.... Т.е. из массива символов создаётся база паролей от 1 до n символов. Помогите, пжлуста....А то уже две ночи не сплю, не получается Дата отправки: 25.12.2005, 03:49 Вопрос задал: Загиров Рустам / Stamm (Специалист) Всего ответов: 3 Страница онлайн-консультации »
Консультирует Константин: Здравствуйте, Stamm! Идея простая: рекурсивный алгоритм, а вот конкретная реализация... щас попробуем... function Generate($qty, $string = \'\', &$result) { $symbols = \'abcd\'; $len = strlen($symbols); for ($i = 0; $i < $len; $i++) { if ($qty == 0) { $result[] = $string; return; } Generate($qty-1, $string.$symbols[$i], $result); } } $result = array(); Generate(5, null, $result); echo \'<pre>\'; print_r($result); echo \'</pre>\'; вроде работает, но это точноне самый оптимальный вариант.... работает долго, как, впрочем, любой или почти любой рекурсивный алгоритм....
Консультирует Straight (Практикант): Здравствуйте, Stamm!
Если честно, вопрос совершенно непонятный.
Консультирует Дмитрий Иванов (Практикант): Здравствуйте, Stamm!
использование rand в связке с ассоциативным массивом данных. ответ в приложении ---- Приложение:
Оценить выпуск | Задать вопрос экспертам главная страница | стать участником | получить консультацию техническая поддержка | восстановить логин/пароль Дорогой читатель! Команда портала RFPRO.RU благодарит Вас за то, что Вы пользуетесь нашими услугами. Вы только что прочли очередной выпуск рассылки. Мы старались. Пожалуйста, оцените его. Если совет помог Вам, если Вам понравился ответ, Вы можете поблагодарить автора - для этого в каждом ответе есть специальные ссылки. Вы можете оставить отзыв о работе портале. Нам очень важно знать Ваше мнение. Вы можете поближе познакомиться с жизнью портала, посетив наш форум, почитав журнал, который издают наши эксперты. Если у Вас есть желание помочь людям, поделиться своими знаниями, Вы можете зарегистрироваться экспертом. Заходите - у нас интересно! МЫ РАБОТАЕМ ДЛЯ ВАС!
|
Комментариев нет:
Отправить комментарий