Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.11.2010, 12:21   #91
ssdm
Форумчанин
 
Регистрация: 20.05.2009
Сообщений: 506
По умолчанию

Цитата:
Отморозили... Alter table нужен для изменения категорий. В вашем коде помимо Insert это Delete и Update. Но это в принципе не важно...
Нда. У вас там жар ? Вы больны ? )) В чем собственно претензии ко мне были , я так и не понял. Зачем нужен Insert, Update, Delete тут все знают(но возможно кроме вас) , или я вам очевидные вещи должен расписывать ,как новичку, который второй раз в жизни T-SQL встретил ))
Цитата:
Ну, Вы же сами сказали:
Цитата:
Я вам выложил готовые sql скрипты(вы же кстати так доканца и не решили поставленную перед задачу только синтаксисом sql), так как это есть самое сложное в этой задаче. Все остальное - тривиальные задачи, на уровне создать страничку и пару простых запросов к базе, но видно у вас это вызывает какие то сложности, так как вы просите выложить вам код.
- ну вообще то это были мои слова. И запросы я вам совсем другие предоставил, нежели вы откоментили ))

Виталий, признаете что ваш "шаманский" способ разнесен в пух и прах и для задачи поставленной автором темы неприемлем ?
ssdm вне форума Ответить с цитированием
Старый 23.11.2010, 14:23   #92
Виталий Желтяков
Старожил
 
Аватар для Виталий Желтяков
 
Регистрация: 19.04.2010
Сообщений: 2,702
По умолчанию

Цитата:
Ну бред же....
Этот код - фрагмент кода ТС,который применяется для получения категорий при редактировании ОДНОЙ СТАТЬИ.
Понимаете - ОДНОЙ.

А то,что вам хватило ума влепить этот кусок кода в цикл,и выполнить этот запрос 100(!!!!) раз - это абсолютно только ваша "заслуга".
Нигде нет даже намёка на то,что мы предполагаем использовать этот код для получения списка всех статей + их категорий - это исключительно ваше "ноу-хау"...
Ну, извените. Другого кода не было. Вы так его и не написали.
На данный момент, напомню Вам, в этой статье только мой код работает.
Цитата:
ну вообще то это были мои слова. И запросы я вам совсем другие предоставил, нежели вы откоментили ))

Виталий, признаете что ваш "шаманский" способ разнесен в пух и прах и для задачи поставленной автором темы неприемлем ?
Вы выложили скрипты поиска по категориям, а простого вывода статей с указанием категорий Я не видел.
Ваши коды поиска переделывать Я не буду - ибо Вы только это критикуете.
Лучше, чтобы закончить наконец наш спор, подправьте файлик viewbad.php согласно вашим алгоритмам и мы все увидим результат.
Виталий Желтяков вне форума Ответить с цитированием
Старый 23.11.2010, 15:13   #93
ssdm
Форумчанин
 
Регистрация: 20.05.2009
Сообщений: 506
По умолчанию

Цитата:
Лучше, чтобы закончить наконец наш спор, подправьте файлик viewbad.php согласно вашим алгоритмам и мы все увидим результат.
Ок , так и поступим. Это расставит все точки над i. И спор можно окончтить.
Но то, что ваш метод для этой задачи не годится уже и так понятно, причины описаны выше. Надеюсь, что вы это все таки публично признаете )

Последний раз редактировалось ssdm; 23.11.2010 в 15:37.
ssdm вне форума Ответить с цитированием
Старый 23.11.2010, 16:26   #94
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от Виталий Желтяков Посмотреть сообщение
Ну, извените. Другого кода не было. Вы так его и не написали.
На данный момент, напомню Вам, в этой статье только мой код работает.
Не могу я вас "извенить" - нет разумных оправданий вашим 100 запросам, такое даже новичкам редко в голову приходит.
Насчёт "только вашего работающего кода" - у ТС с его кодом врядли есть проблемы,иначе уже обратился бы за помощью.
Значит - его код успешно работает.
Но - для вас ведь это не довод(как,впрочем, и любой другой)....

Цитата:
а простого вывода статей с указанием категорий Я не видел.
Пришлось вам его набросать,чтоб вы "увидели" - был бы толк.
Код имеет только "Добавление Новой Категории" и "Вывод списка статей"(с категориями,естественно) - ну да всё равно вас кроме списка статей ничего не интересует,т.к. в остальных опциях вам похвастаться особо нечем ни в плане кода,ни в плане скорости работы.
Сразу скажу - я в своём примере создал целых 3(OMG!!!) таблицы(дамп имеется в архиве).
Тоесть - я не стал заморачиваться с "массивом Категорий в файле" - а по-человечески сделал отдельную таблицу с Категориями.
Также я не стал использовать сложные запросы - обошелся простыми SELECT-ами, просто чтоб продемонстрировать,что даже базовые возможности вполне достаточны для решения задачи.

И даже при этом мой скрипт выдаёт вполне приличную скорость работы,несмотря на выборку из 3-х таблиц и приличное количество категорий(100 против ваших 50) и связей(более 300).
Хоть и выглядит не так презентабельно,как ваш - но не суть.
Вывод списка статей + категории к ним:

Добавление Новой Категории:

Кстати,почему-то ваш viewbad у меня выдаёт совсем не такие показатели,которые приводили вы - может у вас проблемы с железом/ПО???
Вот мои показатели по viewbad:

Скрипт:
Вложения
Тип файла: rar classic.rar (4.5 Кб, 10 просмотров)
Andkorol вне форума Ответить с цитированием
Старый 23.11.2010, 21:34   #95
Виталий Желтяков
Старожил
 
Аватар для Виталий Желтяков
 
Регистрация: 19.04.2010
Сообщений: 2,702
По умолчанию

А теперь начинается самое интересное...
У меня ваш скрипт показывает в среднем следующее время:
1.JPG
Это с учётом того, что Я убрал поля hide и исключил лишние категории да бы условия были одни и те же.
Цитата:
Кстати,почему-то ваш viewbad у меня выдаёт совсем не такие показатели,которые приводили вы - может у вас проблемы с железом/ПО???
Какое у Вас железо/По?
У Меня Windows XP/Vista, Denwer 3, 2ГБ, 2*2,6Гц.

Ваш код комментировать не буду, т.к. он заточен только под поставленную задачу, но подход с выборкой всех данных в массив мне понравился.
Виталий Желтяков вне форума Ответить с цитированием
Старый 23.11.2010, 21:55   #96
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Какое у Вас железо/По?
WinXP SP3, 2Гб, Celeron 1,6Ghz, Apache 2.0/PHP 5.2.13/MySQL 5.1.47
Все скрипты (включая ваши версии - выкладывал скрин) бегают на порядок быстрее,чем у вас на скринах.
Поверьте, мои скрины - не фотошоп.
Мб вам стОит подумать о прощании с Denwer-ом...?
Цитата:
Ваш код комментировать не буду, т.к. он заточен только под поставленную задачу
А подо что,простите, он должен быть заточен...????
Кофе варить?)))))
Цитата:
подход с выборкой всех данных в массив мне понравился.
Поверьте - самая обычная реализация обработки связанных таблиц("многие-к-многим"), она отражает саму суть связей - объединение информации из разных источников при помощи ID.

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

Последний раз редактировалось Andkorol; 24.11.2010 в 01:16.
Andkorol вне форума Ответить с цитированием
Старый 24.11.2010, 14:11   #97
Виталий Желтяков
Старожил
 
Аватар для Виталий Желтяков
 
Регистрация: 19.04.2010
Сообщений: 2,702
По умолчанию

Цитата:
Все скрипты (включая ваши версии - выкладывал скрин) бегают на порядок быстрее,чем у вас на скринах.
Поверьте, мои скрины - не фотошоп.
Мб вам стОит подумать о прощании с Denwer-ом...?
Толку-то, ваши скрипты быстрее бегают и мои скрипты быстрее бегают. Значительная разница во времени сохраняется примерно в 4 раза.
Виталий Желтяков вне форума Ответить с цитированием
Старый 24.11.2010, 16:46   #98
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от Виталий Желтяков Посмотреть сообщение
Значительная разница во времени сохраняется примерно в 4 раза.
Во-первых, "значительная" - слишком громко сказано,когда речь идёт о десятых и сотых долях секунды...
(да,да - я вкурсе про ваши "страшные пиковые нагрузки" - но тут не тот случай, ниже описано - почему)

Во-вторых, "разница примерно в 4 раза" - это,к счастью, только у вас...

Однако - если учитывать:
- простоту и скорость добавления/редактирования/удаления Категорий
- произвольную расширяемость(любое кол-во Категорий для любой статьи) - без модификации кода и структуры БД
- меньший объём кода
то мой вариант явно предпочтительнее для реализации в реальном проекте.

Также следует учесть тот факт,что задача,по которой производится сравнение(вывод списка всех Статей + Их Категории) - взята просто с потолка,и во фронт-эндах реальных приложений врядли когда-либо будет использована(даже и не знаю - зачем это может понадобиться).
Andkorol вне форума Ответить с цитированием
Старый 24.11.2010, 17:12   #99
Виталий Желтяков
Старожил
 
Аватар для Виталий Желтяков
 
Регистрация: 19.04.2010
Сообщений: 2,702
По умолчанию

Цитата:
- произвольную расширяемость(любое кол-во Категорий для любой статьи) - без модификации кода и структуры БД
- меньший объём кода
Это в моём коде есть.
Цитата:
Также следует учесть тот факт,что задача,по которой производится сравнение(вывод списка всех Статей + Их Категории) - взята просто с потолка,и во фронт-эндах реальных приложений врядли когда-либо будет использована(даже и не знаю - зачем это может понадобиться).
Тоже самое Я могу сказать о количестве категорий и частоте из изменений. Я не разу не видел проекта с фильтрацией более чем по 3 категориям, и проекта где категории хотя бы редко меняются.

Мы все увидели реальные цифры (по-крайне мере отношения скорости), увидели, что мой "шаманский код" может свободно работать. Можете считать, что мои алгоритмы нелогичны, но многие задачи мой код решает лучше.
По крайне мере с поим подходом надо считаться...
Виталий Желтяков вне форума Ответить с цитированием
Старый 24.11.2010, 19:54   #100
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от Виталий Желтяков Посмотреть сообщение
Цитата:
- произвольную расширяемость(любое кол-во Категорий для любой статьи) - без модификации кода и структуры БД
- меньший объём кода
Это в моём коде есть.
Это,интересно, где?
Вы так уверенно это заявили - что я аж полез смотреть заново вашу последнюю версию - вдруг чего пропустил...
...
Вы или не поняли моего утверждения:
Цитата:
- произвольную расширяемость(любое кол-во Категорий для любой статьи) - без модификации кода и структуры БД
или это поступок типа "лишь бы последнее слово осталось за мной,а что сказать - не важно"..???

Ваш скрипт сделан чётко под 5 категорий для каждой статьи - вы уже забыли???
Увеличение допустимого количества категорий для статей(напр. не 5, а 8) в вашем варианте возможно только путём изменения БД(добавление дополнительных полей ENUM) + написание дополнительных запросов,коих у вас и так предостаточно(т.е. модификация кода).
Вы не согласны с этим???

Далее,смотрим количество кода - берём за основу количество запросов,т.к. поддерживающий код будет практически идентичен(хоть вы и будете с этим спорить ):

1.Добавление новой Категории в БД
Мой вариант(1 запрос, от увеличения допустимого кол-ва Категорий для одной статьи не зависит):
Цитата:
$query = "INSERT INTO `categories` (`title`) VALUES ('$new_name')";
mysql_query($query);
Ваш вариант(5 запросов,с увеличением допустимого кол-ва - увеличится кол-во запросов) - см. addcategory.php:
Цитата:
$query = "ALTER TABLE `articles` MODIFY `category1` ENUM({$q}) DEFAULT 'Нет категории' NOT NULL";
mysql_query($query);
$query = "ALTER TABLE `articles` MODIFY `category2` ENUM({$q}) DEFAULT 'Нет категории' NOT NULL";
mysql_query($query);
$query = "ALTER TABLE `articles` MODIFY `category3` ENUM({$q}) DEFAULT 'Нет категории' NOT NULL";
mysql_query($query);
$query = "ALTER TABLE `articles` MODIFY `category4` ENUM({$q}) DEFAULT 'Нет категории' NOT NULL";
mysql_query($query);
$query = "ALTER TABLE `articles` MODIFY `category5` ENUM({$q}) DEFAULT 'Нет категории' NOT NULL";
mysql_query($query);
2.Редактирование названия существующей категории
Мой вариант(1 запрос - независимо от допустимого кол-ва):
Цитата:
$query = "UPDATE `categories` SET `title` = '$new_title' WHERE `id` = '$category_id' ";
mysql_query($query);
Ваш вариант(10 запросов - с увеличением допустимого кол-ва - увеличится кол-во запросов) - см. rename.php:
Цитата:
$query = "ALTER TABLE `articles` MODIFY `category1` ENUM({$q}) DEFAULT 'Нет категории' NOT NULL";
mysql_query($query);
$query = "ALTER TABLE `articles` MODIFY `category2` ENUM({$q}) DEFAULT 'Нет категории' NOT NULL";
mysql_query($query);
$query = "ALTER TABLE `articles` MODIFY `category3` ENUM({$q}) DEFAULT 'Нет категории' NOT NULL";
mysql_query($query);
$query = "ALTER TABLE `articles` MODIFY `category4` ENUM({$q}) DEFAULT 'Нет категории' NOT NULL";
mysql_query($query);
$query = "ALTER TABLE `articles` MODIFY `category5` ENUM({$q}) DEFAULT 'Нет категории' NOT NULL";
mysql_query($query);
$query = "UPDATE `articles` SET `category1` = '{$category}'
WHERE `category1` = ''";
mysql_query($query);
$query = "UPDATE `articles` SET `category2` = '{$category}'
WHERE `category2` = ''";
mysql_query($query);
$query = "UPDATE `articles` SET `category3` = '{$category}'
WHERE `category3` = ''";
mysql_query($query);
$query = "UPDATE `articles` SET `category4` = '{$category}'
WHERE `category4` = ''";
mysql_query($query);
$query = "UPDATE `articles` SET `category5` = '{$category}'
WHERE `category5` = ''";
mysql_query($query);
Тут,справедливости ради, замечу - последние 5 запросов делают непонятно что,учитывая,что у вас в структуре таблицы указано для ENUM-полей DEFAULT-значение - откуда возьмутся пустые ячейки???
Ну - это дело ваше....

Далее ваш код цитировать не буду - слишком большой получится пост...

3.Удаление существующей категории из БД
Мой вариант(2 запроса - независимо от допустимого кол-ва):
Цитата:
$query1 = "DELETE FROM `categories` WHERE `id` = '$category_id'";
mysql_query($query1);
$query2 = "DELETE FROM `articles_categories` WHERE `category_id` = '$category_id'";
mysql_query($query2);
Ваш вариант(10 запросов - с увеличением допустимого кол-ва - увеличится кол-во запросов) - см. editcategorydata.php

Это разве похоже на то,что ваш вариант содержит меньше кода???
Не смешите...
Andkorol вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
переход статей timon777777 PHP 9 27.06.2010 23:16