PHP.SU

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

Страниц (2): [1] 2 »

> Найдено сообщений: 20
userPHP Отправлено: 20 Сентября, 2010 - 13:48:50 • Тема: Нестандартный поиск • Форум: Программирование на PHP

Ответов: 13
Просмотров: 802
Мелкий пишет:
кажется мне, что у вас сам метод решения задачи - костыль, противоречащий правилам построения реляционных таблиц (так же известным как правила нормализации)

Спасибо. Возможно вы правы, задача выглдит примерно так :
Вести базу данных неких объектов. Есть множество объектов, у каждого объекта есть некотоые свойства. Причем иногда необходимо добавить/удалить/изменить какому-нибудь объекту какое-либо свойство. Поэтому я и выбрал связующую таблицу многие ко многим. Или я неправильно вас понял ?

JustUserR пишет:
Для реализации сложных запросов выборки информации условие которых включается в себя обратный просмотр в текущей таблице можно использовать рефлексивные соединение - в таком случае за счет указания базового WHERE-условия по некоторым параметрам можно дополнительно получить все связанные строки или элементы встречающиеся хотя бы один раз - конкретно это устанавливается операторами table LEFT/RIGHT/ JOIN table

Спасибо. Пошел курить доки.
userPHP Отправлено: 18 Сентября, 2010 - 03:45:25 • Тема: Нестандартный поиск • Форум: Программирование на PHP

Ответов: 13
Просмотров: 802
Задача немного усложнилась. Теперь есть таблица вида многие ко многим
id | idsomefing
необходимо сделать выборку id в поле idsomefing, которых присутствуют хотябы одно указаное значение и отсутствуют все остальные.

122 1
122 33
122 45
333 45
552 3
678 33
875 54
875 33

по поиску 33 45 должно вернуть 122 333 678

Ничего умнее как преобразовать данную задачу к виду задачи предидущей, я не придумал. Но такое решение кажется костылем. Подскажите пожалуйста более простое и красивое решение.
userPHP Отправлено: 04 Сентября, 2010 - 16:53:17 • Тема: Нестандартный поиск • Форум: Программирование на PHP

Ответов: 13
Просмотров: 802
Спасибо всем, так гораздо понятнее )).
userPHP Отправлено: 04 Сентября, 2010 - 16:20:13 • Тема: Нестандартный поиск • Форум: Программирование на PHP

Ответов: 13
Просмотров: 802
Спасибо. А можно алгоритм, написать словами, ато регулярки, пока, сложны для моего понимания.
userPHP Отправлено: 04 Сентября, 2010 - 15:26:10 • Тема: Нестандартный поиск • Форум: Программирование на PHP

Ответов: 13
Просмотров: 802
Помогите пожалуйста придумать алгоритм поиска, который возвращает только те, строки, вкоторых присутствует хотябы однин искомый элемент, и отсутствуют неуказаные элементы.
например есть строки:

123456789
23456789
333444
333555
1212121212
22222222
1111111

в ищим 1 2
получим

1212121212
22222222
1111111

так как в остальных строках присутствуют неуказаные элементы, мы их игнорируем. Както так (((
userPHP Отправлено: 21 Июля, 2010 - 13:05:27 • Тема: Насколько разумно ? • Форум: Программирование на PHP

Ответов: 2
Просмотров: 260
Есть таблица Users(id, login, pass). Разумно ли в ней будет так же хранить такие данные как name, e-mail, registreddate, ...etc. или прочие уникальные данные лутьше хранить в других таблицах ? Спасибо.
userPHP Отправлено: 07 Июня, 2010 - 15:50:27 • Тема: Трабл с eclipse • Форум: Программное обеспечение

Ответов: 0
Просмотров: 1198
Здраствуйте. Не могу понять почему скрипт не заускается из под eclipce. Нажимал Ran, Ran as, Debug... итд - ничего не происходит. Как настроить, чтоб можно было работаль с дебаггером и профайлером ? Если скрипт открыть браузером (xampp), то все норм.

Устанавливал это eclipse-php-galileo-SR2-win32.zip, и в папку с ним кинул jre от Aptana? а-то незапускался. Ошибок ни каких не выводилось.
userPHP Отправлено: 03 Марта, 2010 - 15:17:42 • Тема: Не долго ли ? • Форум: Программирование на PHP

Ответов: 19
Просмотров: 1055
Не помню, что я сделал, но время генерации страници сократилось до 0.15 сек...
Такая скорость создания страници нормальна ?
userPHP Отправлено: 27 Февраля, 2010 - 17:38:59 • Тема: Не долго ли ? • Форум: Программирование на PHP

Ответов: 19
Просмотров: 1055
спасибо.
У меня ваш скрипт выполнился в первый раз за 20 мс., а потом за 11 мс. Улыбка
Вроде разобрался, у меня global $t, после $t стояла. Когда global $t выше перенес все нормально стало 0.01 с.
Ну а страница по прежнему за 1.4 с генерируется... буду дальне узкие места искать...
userPHP Отправлено: 27 Февраля, 2010 - 16:59:22 • Тема: Не долго ли ? • Форум: Программирование на PHP

Ответов: 19
Просмотров: 1055
После ковыряний выяснилось, что основную массу времени выполняются сторки 49-52.
Примерно 1.40 сек. Из чего я делаю вывод о том, что echo в цикле(порядка 2000 итераций) - не самое удачное решение. Есть ли какое либо другое, более быстрое решение, или я неправильно выводы сделал ?

Врятли дело в echo... так замена строк 49-52 на такую конструкцию ситуацию не изменила.
PHP:
скопировать код в буфер обмена
  1.        $str="";
  2.    for($i=0; $i<=$pages;$i++)
  3.    {
  4.         $str=$str."<a href=index.php?currentpage=$i> $i</a>";
  5.    }
  6. echo $str;

Что можно сделать в данной ситуации ?(кроме сокращения колличества отображаемых номеров страниц)
userPHP Отправлено: 27 Февраля, 2010 - 14:02:10 • Тема: Не долго ли ? • Форум: Программирование на PHP

Ответов: 19
Просмотров: 1055
Спасибо всем за помощь, буду дальше ковырять.
userPHP Отправлено: 27 Февраля, 2010 - 12:06:09 • Тема: Не долго ли ? • Форум: Программирование на PHP

Ответов: 19
Просмотров: 1055
а нельзя как-нибудь данное значение (1.6927719116211E-5) привести к более обычному(привычному) виду ?
userPHP Отправлено: 27 Февраля, 2010 - 10:22:01 • Тема: Не долго ли ? • Форум: Программирование на PHP

Ответов: 19
Просмотров: 1055
спасибо, буду дальше ковырять.

неполучается у меня микротаймом замерить. выдает вот что
$t=microtime(1) 1267260206.8466
if...
if...
if...
microtime(1)-$t 1.6927719116211E-5
microtime(1) 1267260206.8466
userPHP Отправлено: 27 Февраля, 2010 - 10:04:50 • Тема: Не долго ли ? • Форум: Программирование на PHP

Ответов: 19
Просмотров: 1055
То есть лутше будет сделать так (в данном случае id(PK) и позиция совпадают)?
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. SELECT *
  3. FROM `tmessage`
  4. WHERE id >= 50000
  5. LIMIT 30


то есть, постараться избежать LIMIT x,y где x достаточно большой, и вместо него использовать комбинацию Where id>=x limit y ?
Я правильно вас понял ?
Выполнив
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT *
  2. FROM `tmessage`
  3. WHERE id >=50000
  4. LIMIT 10
и
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT *
  2. FROM `tmessage`
  3. LIMIT 50000,10
в phpMyAdmin я получил примерно одиаковую скорость выполнения. порядка 0.01xx
userPHP Отправлено: 27 Февраля, 2010 - 09:40:41 • Тема: Не долго ли ? • Форум: Программирование на PHP

Ответов: 19
Просмотров: 1055
То есть профайлинг, это поиск узких мест ?

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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB