PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (9): [1] 2 3 4 5 6 7 8 9 »

> Найдено сообщений: 133
ant Отправлено: 24 Сентября, 2016 - 17:57:03 • Тема: Большое количество ссылок с похожим контентом • Форум: Вопросы новичков

Ответов: 1
Просмотров: 104
Здравствуйте.

На главной странице сайта есть большое количество блоков со ссылками типа:
1.
mysite.com/smth-1-word
mysite.com/smth-2-word
mysite.com/smth-3-word
mysite.com/smth-4-word
и т.д.

2.
mysite.com/any-1-word
mysite.com/any-2-word
mysite.com/any-3-word
mysite.com/any-4-word
и т.д.

3.
mysite.com/blabla-1-word
mysite.com/blabla-2-word
mysite.com/blabla-3-word
mysite.com/blabla-4-word
и т.д.

4...
И т.д.

Всего 16 таких блоков.

Все эти страницы однотипные, в зависимости от ссылки изменяется лишь часть контента.

Возможно ли в файле .htaccess прописать, чтобы при переходе по любой из этих ссылок был переход на одну страницу, но при этом в адресной строке браузера оставался прежний адрес ссылки (например, mysite.com/smth-1-word)? И чтобы на этой странице можно было узнать, по какой ссылке кликнул пользователь, чтобы знать, какой контент использовать. Или, возможно, существует другой способ сделать это?

Создавать десятки страниц как-то не хочется Огорчение
ant Отправлено: 22 Июля, 2013 - 14:51:36 • Тема: Удаление дублирующих записей при добавлении уникального ключа • Форум: SQL и Архитектура БД

Ответов: 2
Просмотров: 27
EuGen
Оно =)
Спасибо
ant Отправлено: 22 Июля, 2013 - 13:49:56 • Тема: Удаление дублирующих записей при добавлении уникального ключа • Форум: SQL и Архитектура БД

Ответов: 2
Просмотров: 27
Здравствуйте.
Есть таблица на более 200 000 записей. Нужно добавить уникальный ключ по нескольким полям.
CODE (SQL):
скопировать код в буфер обмена
  1. ALTER TABLE `tbl` ADD UNIQUE (`col1`(100) ,`col2`(100), `col3`(100));


Так как в таблице уже есть идентичные записи по этим полям, то вылетает ошибка:
#1062 - Duplicate entry 'блаблабла-блаблабла-блаблабла' for key 'col2'

Возможно ли добавить этот ключ так, чтобы дубликаты удалились, оставив записи в одном экземпляре? Вручную удалять такое количество записей как-то не хочется... =)
ant Отправлено: 15 Июля, 2013 - 12:25:45 • Тема: Шифрование/расшифрование двух целых чисел • Форум: Вопросы новичков

Ответов: 5
Просмотров: 568
А можно в качестве примера какие именно наработки? Человек просто возьмет эту строку, base64_decode() и получит эти два числа. То есть это шифрование не средней сложности, а самой простой получается... Хотелось хотя бы немного усложнить.
ant Отправлено: 15 Июля, 2013 - 04:55:29 • Тема: Шифрование/расшифрование двух целых чисел • Форум: Вопросы новичков

Ответов: 5
Просмотров: 568
Здравствуйте.
Есть 2 целых положительных числа (от 1 до 300 000, возможно больше). Нужно их зашифровать, затем расшифровать обратно. Сложность шифрования - подойдет средняя, данные не секретные. =)
Есть какие-нибудь советы?
ant Отправлено: 20 Мая, 2013 - 06:22:33 • Тема: Парность в регулярных выражениях • Форум: Регулярные выражения

Ответов: 2
Просмотров: 164
Здравствуйте.

Такой пример:
...a...b...a...b...a...b...
то есть каждому начальному символу "а" есть закрывающий символ "b", вложенных a-b нет, количество символов может быть любым.
PHP:
скопировать код в буфер обмена
  1.  
  2. $str = '431a12343465b3432423a12124566b34a12243545b34';
  3. preg_match_all('#a.*b#', $str, $arr);


В результате:
PHP:
скопировать код в буфер обмена
  1. $arr[0][0] = "a12343465b3432423a12124566b34a12243545b";


То есть были выбраны первый символ "a" и последний символ "b" в строке, другие символы "b" просто проигнорированы. А мне нужно, чтобы было:
PHP:
скопировать код в буфер обмена
  1. $arr[0][0] = 'a12343465b';
  2. $arr[0][1] = 'a12124566b';
  3. $arr[0][2] = 'a12243545b';


Подскажите пожалуйста как можно сделать это?
ant Отправлено: 04 Декабря, 2012 - 03:46:50 • Тема: Триггеры в mysql 5.1 и mysql 5.5 • Форум: SQL и Архитектура БД

Ответов: 0
Просмотров: 13
Здравствуйте.
Создаю 2 триггера:
CODE (SQL):
скопировать код в буфер обмена
  1. DELIMITER |
  2. CREATE TRIGGER `after_insert_invite_friends_to_chat` AFTER INSERT ON `invite_friends_to_chat`
  3.   FOR EACH ROW BEGIN
  4.     INSERT INTO `messages` (`id_user_from`, `id_user_to`, `message`, `dt`, `is_watch`)
  5.       VALUES (NEW.id_user_who,
  6.         NEW.id_user_whom,
  7.         CONCAT((SELECT `lastname` FROM `users` WHERE `id` = NEW.id_user_who),
  8.           ' ',
  9.           (SELECT `name` FROM `users` WHERE `id` = NEW.id_user_who),
  10.           ' приглашает вас в чат: <a href="room.php?code1=',
  11.           NEW.chat_code,
  12.           '&code2=0">перейти в чат</a>'),
  13.         NOW(), 1);
  14.   END|
  15. |
  16. DELIMITER ;
  17.  
  18. DELIMITER |
  19. CREATE TRIGGER `after_delete_invite_friends_to_chat` AFTER DELETE ON `invite_friends_to_chat`
  20.   FOR EACH ROW BEGIN
  21.     DELETE FROM `messages` WHERE `id_user_from` = OLD.id_user_who AND
  22.       `id_user_to` = OLD.id_user_whom AND
  23.       `message` = CONCAT((SELECT `lastname` FROM `users` WHERE `id` = OLD.id_user_who),
  24.       ' ',
  25.       (SELECT `name` FROM `users` WHERE `id` = OLD.id_user_who),
  26.       ' приглашает вас в чат: <a href="room.php?code1=',
  27.       OLD.chat_code,
  28.       '&code2=0">перейти в чат</a>');
  29.   END|
  30. |
  31. DELIMITER ;


На локальном компьютере установлена MySQL 5.5 (Денвер) и все прекрасно работает. При добавлении и удалении (через event событие) записи в таблице invite_friends_to_chat создается и удаляется соответственно запись в таблице messages. А вот на сервере установлена MySQL 5.1.66 и эти 2 триггера не работают (то есть не создается запись в таблице messages после добавления записи в таблице invite_friends_to_chat). Команда show triggers показывает, что триггеры есть. Но они почему-то не работают. Подскажите, пожалуйста, в чем может быть причина?
ant Отправлено: 05 Сентября, 2012 - 14:02:24 • Тема: Сессии и подключение файла (require) • Форум: Вопросы новичков

Ответов: 2
Просмотров: 136
EuGen
Да... Спасибо.
ant Отправлено: 05 Сентября, 2012 - 13:27:28 • Тема: Сессии и подключение файла (require) • Форум: Вопросы новичков

Ответов: 2
Просмотров: 136
Здравствуйте.

В контроллере:
PHP:
скопировать код в буфер обмена
  1. require 'tmpl/blocks/auth.div.php';
  2. $divAuth=ob_get_clean();


Файл 'tmpl/blocks/auth.div.php' - это html-разметка блока авторизации (<div id="divAuth">...</div>).

В самом конце контроллера как и полагается подключение шаблона страницы:


Я почему-то всегда думал, что после начала сессии все, что мы подключаем через require будет буферизироваться, то есть в моем случае попадет в переменную $divAuth. А у меня почему-то этот блок авторизации выводится в браузере ДО шаблона, а переменная $divAuth пустая. Получается нельзя так делать или в чем может быть проблема?

P.S. PHP 5.3, последний Денвер.
ant Отправлено: 22 Июля, 2012 - 09:49:17 • Тема: Выбор последующей записи • Форум: Работа с СУБД

Ответов: 22
Просмотров: 3621
tuareg пишет:
А так задача решается в три этапа.
1 Находим min,max
2 Сравниваем если id=max прекращаем искомый id=min
3 Находим
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT id FROM tbl WHERE id>$id LIMIT 1;

да
ant Отправлено: 22 Июля, 2012 - 09:41:06 • Тема: Выбор последующей записи • Форум: Работа с СУБД

Ответов: 22
Просмотров: 3621
Понятно. Ну я только вечером смогу поэкспериментировать.
ant Отправлено: 22 Июля, 2012 - 09:35:46 • Тема: Выбор последующей записи • Форум: Работа с СУБД

Ответов: 22
Просмотров: 3621
А размер таблицы не важен?
ant Отправлено: 22 Июля, 2012 - 09:32:43 • Тема: Выбор последующей записи • Форум: Работа с СУБД

Ответов: 22
Просмотров: 3621
Ясно, про индекс я не подумал Улыбка
ant Отправлено: 22 Июля, 2012 - 09:22:24 • Тема: Выбор последующей записи • Форум: Работа с СУБД

Ответов: 22
Просмотров: 3621
Ну здесь наверное очень много нюансов.

1-й вариант. Есть же разница если id=3. А следующее очень большое число или число сразу за ним (id=4). Если следующая запись рядом, то может и нормально. Но если очень далеко, то плюс один, пробег по всем записям в поисках нужного и т.д. сначала. И так до бесконечности. Таблица же не отсортирована.
2-й вариант. Таблица сортируется (зато только один раз) - самое наверное затратное действие. Дальше я так понимаю быстро.

Плюс я так понимаю есть разница MyISAM или InnoDB.

Вообще я думаю лучше тебе самим поэкспериментировать. У меня очень мало знаний и опыта, не хочу вводить тебя и других людей в заблуждение моими "корявыми" тестами Радость
ant Отправлено: 22 Июля, 2012 - 09:03:01 • Тема: Выбор последующей записи • Форум: Работа с СУБД

Ответов: 22
Просмотров: 3621
Сейчас не могу, разве что позже. Но ведь первый вариант это же 2 запроса (MySQL)? С учетом только этого факта можно предполагать с очень высокой степенью вероятности, что второй вариант быстрее?

Страниц (9): [1] 2 3 4 5 6 7 8 9 »
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB