PHP.SU

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

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

> Найдено сообщений: 105
Dragon_Knight Отправлено: 20 Июня, 2012 - 21:14:52 • Тема: Бегущая строка, если текст длинный.... • Форум: JavaScript & VBScript

Ответов: 2
Просмотров: 2479
Всем привет.
Понадобилось реализовать необычную бегущую строку, но не могу понять с чего начать...

Смысл вот в чём: Есть таблица, допустим с 2 столбами, 100px. и 400px.
Так вот, если текст во второй столбец влезает, то он просто отображаться, а если нет, то начинает бегать туда-сюда, как <marquee behavior="alternate">...</marquee>

В принципе это можно реализовать ещё на стадии генерации страницы в php, но думаю сделать через js будет более правильнее, или нет?
Dragon_Knight Отправлено: 05 Июня, 2012 - 16:30:15 • Тема: Получение ID записи. (UNIQUE) • Форум: Работа с СУБД

Ответов: 6
Просмотров: 1873
Мелкий, да. Новые вставки в начале будут частыми, но со временем сойдут на нет вообще и будет только чтение.

Спасибо за помощь. Улыбка

PS> С какого кол-во сообщений можно говорить "Спасибо!"?
Dragon_Knight Отправлено: 04 Июня, 2012 - 22:11:28 • Тема: Получение ID записи. (UNIQUE) • Форум: Работа с СУБД

Ответов: 6
Просмотров: 1873
Мелкий, спасибо за ответ. Тока я видимо что-то недопонял...
Я сделал такую функцию:
PHP:
скопировать код в буфер обмена
  1. function MySQL_InsertAndReturnID($table, $key, $value)
  2. {
  3.         $query_1 = mysql_query("SELECT `id` FROM `" . $table . "` WHERE `" . $key . "` = '" . $value . "' LIMIT 1");
  4.         if($query_1 == TRUE)
  5.         {
  6.                 if(mysql_num_rows($query_1) == 1) // Найдено
  7.                 {
  8.                         $row = mysql_fetch_row($query_1);
  9.                         $ID = $row['0'];
  10.                 }
  11.                 else // НЕ найдено
  12.                 {
  13.                         $query_2 = mysql_query("INSERT INTO `" . $table . "` SET `" . $key . "` = '" . $value . "'");
  14.                         if($query_2 == TRUE)
  15.                         {
  16.                                 $ID = mysql_insert_id();
  17.                         }
  18.                 }
  19.         }
  20.  
  21.         return $ID;
  22. }

Все остальные запросы на таблицу будут иметь вить типа:
SELECT `title` FROM `fmr_title` WHERE `id` = '" . $Title_ID . "'.
Dragon_Knight Отправлено: 04 Июня, 2012 - 21:10:50 • Тема: Получение ID записи. (UNIQUE) • Форум: Работа с СУБД

Ответов: 6
Просмотров: 1873
Мелкий, т.е. в таком случае есть смысл убрать и не использовать "UNIQUE KEY `title_key` (`title`)"?
Dragon_Knight Отправлено: 04 Июня, 2012 - 20:00:33 • Тема: Получение ID записи. (UNIQUE) • Форум: Работа с СУБД

Ответов: 6
Просмотров: 1873
Всем привет, опять застрял на, казалось-бы, простой вещи.

Задача такова:
Есть таблица с индексом UNIQUE.
CODE (SQL):
скопировать код в буфер обмена
  1. CREATE TABLE IF NOT EXISTS `fmr_title` (
  2.   `id` int(11) NOT NULL AUTO_INCREMENT,
  3.   `title` varchar(100) NOT NULL,
  4.   PRIMARY KEY (`id`),
  5.   UNIQUE KEY `title_key` (`title`)
  6. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 ;

Нужно вставлять уникальное значение поля `title`, при этом, независимо от того, вставили мы значение или оно уже есть, нужно получить ID этой записи.

Вставить и получить ID я знаю как: 'mysql_ insert_ id', но как более грамотно получиться ID поля, которое уже есть?
Dragon_Knight Отправлено: 21 Мая, 2012 - 22:21:41 • Тема: Проблема с ON DUPLICATE KEY • Форум: Работа с СУБД

Ответов: 7
Просмотров: 2723
tuareg, да именно это и требуется. Спасибо.
Тока вопрос про табличку, можете поподробнее рассказать про "UNIQUE KEY `nashIndex` (`id_url`,`referer`(10))"
Как я понял:
nashIndex - Имя, в данном случае без разницы что указать.
(*) - Список полей, которые не должны совпадать (по логике AND).
Но вот что такое `referer`(10) - цифра 10 - ??
(Добавление)
Методом случайных проб и не менее случайных ошибок понял, что 10, это длинна сравниваемой строчки, и если строка длиннее, то сравниваются только первый 10 символов.

В итоге пришёл к такой базе:
CODE (SQL):
скопировать код в буфер обмена
  1. CREATE TABLE IF NOT EXISTS `url_data` (
  2.   `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
  3.   `id_url` int(11) UNSIGNED NOT NULL,
  4.   `referer` varchar(255) NOT NULL,
  5.   `count` int(11) UNSIGNED NOT NULL DEFAULT '1',
  6.   PRIMARY KEY (`id`),
  7.   UNIQUE KEY `nashIndex` (`id_url`,`referer`(255))
  8. ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 ;

И к такому запросу:
PHP:
скопировать код в буфер обмена
  1. $query = mysql_query("INSERT INTO `" . $MySQL_Table_Data . "`(`id_url`,`referer`) VALUES ('" . $id_url . "','" . $Referer . "') ON DUPLICATE KEY UPDATE `count` = `count`+1");


tuareg, Ещё раз Спасибо! Улыбка
Dragon_Knight Отправлено: 21 Мая, 2012 - 18:38:30 • Тема: Проблема с ON DUPLICATE KEY • Форум: Работа с СУБД

Ответов: 7
Просмотров: 2723
tuareg, Я читал и понял что одним запросом это не сделать, иначе я-бы тут не спрашивал.
А то что Вы предоставили сделает уникальный ключ по ВСЕЙ таблице, что неприемлемо.

Таблица должна быть такого формата:
CODE (htmlphp):
скопировать код в буфер обмена
  1. | id | id_url |   referer   | count |
  2. -------------------------------------
  3. | 1  |    1   |  yandex.ru  |   3   |
  4. | 2  |    1   |  google.ru  |   2   |
  5. | 3  |    1   |  rambler.ru |   1   |
  6. | 4  |    2   |  yandex.ru  |   5   |
  7. | 5  |    2   |  google.ru  |   6   |
  8. | 6  |    2   |  rambler.ru |   7   |
  9. | 7  |    3   |  yandex.ru  |   1   |
  10. | 8  |    4   |  yandex.ru  |   1   |
Dragon_Knight Отправлено: 21 Мая, 2012 - 14:22:30 • Тема: Проблема с ON DUPLICATE KEY • Форум: Работа с СУБД

Ответов: 7
Просмотров: 2723
tuareg, Вы не внимательно прочитали мой запрос.

Задача сделать уникальное поле ТОЛЬКО при `id_url` = '" . $id_url . "'.
Другими словами, у конкретного значения `id_url` (int) не должно быть повторений полей `referer`, однако у разных `id_url`, значение `referer` может повторяться.

Я так подумал и понял что ON DUPLICATE KEY тут не подходит, и у меня есть только вариант с 3 запросами:
1) Проверяем наличие `referer` при `id_url` = '" . $id_url . "'
2) Если запись есть, то обновляем count
3) Если записи нету, то создаём её.

Т.е. как-то так, но не уверен что это оптимальное решение
PHP:
скопировать код в буфер обмена
  1. $query_1 = mysql_query("SELECT `id` FROM `" . $MySQL_Table_Data . "` WHERE `id_url` = '" . $id_url . "' AND `referer` = '" . $Referer . "' LIMIT 1");
  2. if(mysql_num_rows($query_1) == 1) // найдено
  3. {
  4.         $row = mysql_fetch_row($query_1);
  5.         $query_2 = mysql_query("UPDATE `" . $MySQL_Table_Data . "` SET `count` = count + 1 WHERE `id` = '" . $row['0'] . "'");
  6. }
  7. else // НЕ найдено
  8. {
  9.         $query_2 = mysql_query("INSERT INTO `" . $MySQL_Table_Data . "` (`id_url`, `referer`) VALUES ('" . $id_url . "', '" . $Referer . "')");
  10. }
Dragon_Knight Отправлено: 21 Мая, 2012 - 04:25:30 • Тема: Проблема с ON DUPLICATE KEY • Форум: Работа с СУБД

Ответов: 7
Просмотров: 2723
Всем привет.

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

Набросал такой код, но он не работает как положено...
CODE (SQL):
скопировать код в буфер обмена
  1. INSERT INTO `" . $MySQL_Table_Data . "` SET `id_url` = '" . $id_url . "', `referer` = '" . $Referer . "' ON DUPLICATE KEY UPDATE `count` = count + 1


Задача создать уникальное поле `referer` при `id_url` = '" . $id_url . "', а если запись уже есть, то `count` = count + 1
Dragon_Knight Отправлено: 17 Мая, 2012 - 23:39:12 • Тема: Листинг папки с большим кол-во файлов + VPN • Форум: Работа с файловой системой и файлами

Ответов: 1
Просмотров: 1192
Всем привет.
Есть такая ситуация: Есть удалённая папка с большим кол-во файлов (>25.000). Папка подключена к серверу с апачем средствами VPN. По этой папке проводиться поиск файлов по маске, НО он занимает примерно по 10-15 секунд.
Как можно оптимизировать этот процесс?

PHP:
скопировать код в буфер обмена
  1. function QuickSearch($PatchDir, $InputString, $MaxCount = 20)
  2. {
  3.         if($InputString == '') return 0;
  4.  
  5.         if($dir = @opendir($PatchDir))
  6.         {
  7.                 $OutputString = '';
  8.                 $count = 0;
  9.                 while(($file = readdir($dir)) !== false)
  10.                 {
  11.                         if($count == $MaxCount) break;
  12.                         $file = str_replace('.ini','',$file);
  13.                         if(fnmatch($InputString . "*", $file))
  14.                         {
  15.                                 $count++;
  16.                                 $OutputString .= "<span style=\"cursor:pointer; color:#0000BB;\" onClick=\"getElementById('search_form').value = '" . $file . "';\"><b>" . $file . "</b></span><br>\n";
  17.                         }
  18.                 }
  19.                 closedir($dir);
  20.                 if($count == 0)
  21.                 {
  22.                         $OutputString = "<b>Ничего не найдено</b>";
  23.                 }
  24.         }
  25.         else
  26.         {
  27.                 $OutputString = "<b>Ошибка открытия директории</b>";
  28.         }
  29.  
  30.         return $OutputString;
  31. }


Вариант с кэшированием невозможен.
Dragon_Knight Отправлено: 05 Мая, 2012 - 17:34:21 • Тема: htaccess и передача url в php • Форум: Вопросы новичков

Ответов: 39
Просмотров: 1248
Получилось именно то, что и требовалось.
Вот что получилось, может кому пригодиться.
Dragon_Knight Отправлено: 05 Мая, 2012 - 17:08:57 • Тема: htaccess и передача url в php • Форум: Вопросы новичков

Ответов: 39
Просмотров: 1248
Мелкий, avtor.fox, да, действительно неплохой вариант. Сейчас попробую, отпишусь Улыбка
Dragon_Knight Отправлено: 05 Мая, 2012 - 16:55:33 • Тема: htaccess и передача url в php • Форум: Вопросы новичков

Ответов: 39
Просмотров: 1248
avtor.fox, да, тока не понял как это применимо в моей ситуации Не понял
Dragon_Knight Отправлено: 05 Мая, 2012 - 16:48:13 • Тема: htaccess и передача url в php • Форум: Вопросы новичков

Ответов: 39
Просмотров: 1248
avtor.fox, единая точка входа? - на пару сайтов есть, на других нету. Классы, конфиги, это всё независимо почти у всех.

Я 'уцепился' к данному подходу лишь потому, что он единственный подойдёт сразу для всех сайтов, без значительной модификации.

Значит остаётся вариант с куками в htaccess, найти-бы тока пример нормальный.
Dragon_Knight Отправлено: 05 Мая, 2012 - 16:32:26 • Тема: htaccess и передача url в php • Форум: Вопросы новичков

Ответов: 39
Просмотров: 1248
avtor.fox, не придирайтесь к словам, Вы сами всё прекрасно понимаете.
Хорошо скажу по другому. У меня 100 сайтов, на них стоит по 10 скриптов (форум, галерея, чат.....). Мне описывать структуру каждого сайта?
А завтра будет уже 1000 сайтов... Это получается 10к УРЛ'лов.

PS> Надеюсь Вы понимаете что это условно и для примера.
(Добавление)
Это я к тому, что неважно какая структура сайта, от неё зависеть ничего не должно.

Структура сайтов такова: http://(www.)?site.(ru|com|su)/(.*)

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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB