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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.11.2010, 20:26   #81
Виталий Желтяков
Старожил
 
Аватар для Виталий Желтяков
 
Регистрация: 19.04.2010
Сообщений: 2,702
По умолчанию

Цитата:
Я вам привел готовые SQL запросы. Вставьте их вместо аналогичных ваших и проверяйте. Ах да, у вас базы то нет ,тут и возникает вопрос , как вы тестировали ваш метод с нормальным методом, если базы не было ?
Если базы есть то тогда вперед ,делайте тесты.
Замечательно, Я расцениваю это как ваше поражение... Своих работающих кодов Вы не представили.
Цитата:
Согласен ,запросы на выборку будут проходить чаще, но зачем забывать про остальную функциональность(а задача изменения и дополнения категорий в ТЗ стояла).
Как видите Я её не забыл и даже реализовал.
Цитата:
Добавлено: и кстати на сколько этот злочастный ENUM быстрее того же varchar ? Вот интересная статья с тестами http://www.mysqlperformanceblog.com/...hat-is-faster/
В статье все таблицы динамические. А ENUM допускает использование статических таблиц.

--
Я тут подумал, что будет весьма "несправедливым" Вам просто так сдаться. Тестирование Я могу провести и сам. Значит вы предлагаете для вывода использовать следующий ваш код:
Цитата:
Вывод статьи и ее категорий для редактирования:
PHP код:
// вывод в форму для редактирования названия статьи, текста, автора
$query = mysql_query("SELECT * FROM articles WHERE id_article='$id_article';");
while($q = mysql_fetch_array($query)){
// поля "Название", "Текст", "Автор" формы для редактирования
}

// вывод в форму для редактирования id категорий через запятую
$query_2 = mysql_query("SELECT id_category FROM articles_categories WHERE id_article='id_article';");
$array = array();
while($q = mysql_fetch_array($query_2)){
$array[] = $q['id_category'];
}
sort($array);
$category = implode(",", $array);
echo "<input type=\"text\" name=\"category\" value=\"".$category."\">"; // поле "

Последний раз редактировалось Виталий Желтяков; 22.11.2010 в 20:34. Причина: В догонку
Виталий Желтяков вне форума Ответить с цитированием
Старый 22.11.2010, 20:59   #82
ssdm
Форумчанин
 
Регистрация: 20.05.2009
Сообщений: 506
По умолчанию

Цитата:
Замечательно, Я расцениваю это как ваше поражение... Своих работающих кодов Вы не представили.
ОМГ ) Вы вообще первый пост данной темы читали ? Вы вообще хоть понимаете о чем спор то был?
Вы какой то быдлокод выложили, и называете это решением и на основе этого делайте выводы? Почитайте книг умных что ли.
Цитата:
Замечательно, Я расцениваю это как ваше поражение... Своих работающих кодов Вы не представили.
Вы через "жопу" это реализовали. Я вам выложил готовые sql скрипты(вы же кстати так доканца и не решили поставленную перед задачу только синтаксисом sql), так как это есть самое сложное в этой задаче. Все остальное - тривиальные задачи, на уровне создать страничку и пару простых запросов к базе, но видно у вас это вызывает какие то сложности, так как вы просите выложить вам код. Попросите Nikolai_ , может он вам его выложит, что бы вы ознакомились. У него уже все есть.
Цитата:
А ENUM допускает использование статических таблиц.
Нда. Тяжелый случай.

Вообщем Виталий, то что автор темы выбрал нормальное рещение, а не плод вышей больной фантазии - это есть единственный и правельный результат всех этих препирательств.

За сим удаляюсь. Нет больше никакого желания вам что то доказывать. Вы просто уперлись на своем и все.

Последний раз редактировалось ssdm; 22.11.2010 в 21:19.
ssdm вне форума Ответить с цитированием
Старый 22.11.2010, 21:33   #83
Виталий Желтяков
Старожил
 
Аватар для Виталий Желтяков
 
Регистрация: 19.04.2010
Сообщений: 2,702
По умолчанию

Я протестил ваш код и понял почему Вы отказывались писать скрипты.
Скрин №1 - Вывод 100 статей с указанием категорий с помощью моего алгоритма.
1.JPG
Скрин №2 - Вывод 100 статей с указанием категорий с помощью вашего алгоритма.
2.JPG
Разница на лицо. Мой "шаманский" алгоритм работает значительно лучше вашего.
Виталий Желтяков вне форума Ответить с цитированием
Старый 22.11.2010, 21:38   #84
Виталий Желтяков
Старожил
 
Аватар для Виталий Желтяков
 
Регистрация: 19.04.2010
Сообщений: 2,702
По умолчанию

Что бы Вам было над чем подумать, Я прикрепляю реализацию.
Вложения
Тип файла: rar holywar v5.rar (40.8 Кб, 10 просмотров)

Последний раз редактировалось Виталий Желтяков; 22.11.2010 в 21:43.
Виталий Желтяков вне форума Ответить с цитированием
Старый 22.11.2010, 22:14   #85
ssdm
Форумчанин
 
Регистрация: 20.05.2009
Сообщений: 506
По умолчанию

Цитата:
Разница на лицо. Мой "шаманский" алгоритм работает значительно лучше вашего.
Нда. Обещал не писать ,но все же.
Быстрее - не значит лучше + выложите какие имено запросы тестили + дампы баз, сам протестирую.
Предположим что ваши запросы на выборку быстрее работают,но вы согласны что изменение - дополнение категорий на вашей реализации - верх идиотизма ?
Ведь на время обновления таблицы после добавления категории сайт то недоступен будет. С этим то очевидным фактом вы согласны? Только ответьте на этот вопрос, а не сьезжайте с темы.

Последний раз редактировалось ssdm; 22.11.2010 в 22:32.
ssdm вне форума Ответить с цитированием
Старый 23.11.2010, 00:34   #86
Виталий Желтяков
Старожил
 
Аватар для Виталий Желтяков
 
Регистрация: 19.04.2010
Сообщений: 2,702
По умолчанию

Цитата:
Быстрее - не значит лучше + выложите какие имено запросы тестили + дампы баз, сам протестирую.
Уже выложены. См. последнюю версию.
Цитата:
Предположим что ваши запросы на выборку быстрее работают,но вы согласны что изменение - дополнение категорий на вашей реализации - верх идиотизма ?
То же шаманство, но работает довольно не плохо.
Цитата:
Ведь на время обновления таблицы после добавления категории сайт то недоступен будет. С этим то очевидным фактом вы согласны?
Да, таблица будет блокироваться. Но наверное Вы забыли, что при обновлении и вашим алгоритмом таблица будет блокироваться.
Вообще-то Я считаю, что с медленной работой функций изменения категорий можно посчитаться, ради почти десятикратного увеличения скорости выборки.
Виталий Желтяков вне форума Ответить с цитированием
Старый 23.11.2010, 00:53   #87
ssdm
Форумчанин
 
Регистрация: 20.05.2009
Сообщений: 506
По умолчанию

Цитата:
Но наверное Вы забыли, что при обновлении и вашим алгоритмом таблица будет блокироваться.
Insert заблокирует таблицу на мгновение.
А вот Alter table при большом количестве записей и наличии индексов на несколько минут как минимум )))

Добавалено :
Цитата:
выложите какие имено запросы тестили
Цитата:
Уже выложены. См. последнюю версию.
И где ?

Потестил я не много вашу базу на простых запрах
Цитата:
SELECT *
FROM `articles`
WHERE (
category1 = 'Категория38'
OR category2 = 'Категория38'
OR category3 = 'Категория38'
OR category4 = 'Категория38'
OR category5 = 'Категория38'
)
LIMIT 0 , 30
0.0046 с

Цитата:
SELECT *
FROM `articlesbad`
WHERE id_article
IN (

SELECT id_article
FROM articles_categories
WHERE name
IN (
'Категория38'
)
)
LIMIT 0 , 30
0,0017 c

)))))

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

Цитата:
Сообщение от Виталий Желтяков Посмотреть сообщение
Уже выложены. См. последнюю версию.
Посмотрел.
Знаете - я вот тут с вами пообщался некоторое время,попривык к вашим "шаманствам" и оригинальным идеям - и почему-то думал,что вы уже меня врядли чем-то сможете удивить.
Но, посмотрев ваш последний вариант,пришлось признать - я ошибался...
Вы не зря назвали файл viewbad.php - это реально полный капец!!!

Как - я правда понять не могу - как вам в голову пришло влепить в скрипт 101(!!!!!) запрос SELECT ????
PHP код:
// Выводим список всех статей
$query mysql_query("SELECT * FROM `articlesbad`");// получаем 100 записей
while($q mysql_fetch_array($query)){
   
// вывод в форму для редактирования id категорий через запятую
   // выполняем 100(!!!!) запросов в цикле
   
$query_2 mysql_query("SELECT `name_category` FROM `articles_categories` WHERE `id_article`='{$q['id_article']}';"); 
Я такое количество последний раз видел в каком-то диком движке типа DLE, прошедшем "модернизацию" у суровых индийских парней - после чего движок и угас....
Но тут-то - просто список статей и категорий к ним...!
Вы что - правда считаете,что другого способа получить данные из 2-х таблиц и сопоставить их НЕТ????
Тогда не удивительно,что вы своим "шаманизмом" занимаетесь - даже "шаманизм" лучше ЭТОГО...!!!

Прийдётся-таки писать вам пример,раз такое дело - это ж ужас,так решать стандартные задачи!!!

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

Цитата:
Insert заблокирует таблицу на мгновение.
А вот Alter table при большом количестве записей и наличии индексов на несколько минут как минимум )))
Отморозили... Alter table нужен для изменения категорий. В вашем коде помимо Insert это Delete и Update. Но это в принципе не важно...
Цитата:
Посмотрел.
Знаете - я вот тут с вами пообщался некоторое время,попривык к вашим "шаманствам" и оригинальным идеям - и почему-то думал,что вы уже меня врядли чем-то сможете удивить.
Но, посмотрев ваш последний вариант,пришлось признать - я ошибался...
Вы не зря назвали файл viewbad.php - это реально полный капец!!!

Как - я правда понять не могу - как вам в голову пришло влепить в скрипт 101(!!!!!) запрос SELECT ????
Ну, Вы же сами сказали:
Цитата:
Я вам выложил готовые sql скрипты(вы же кстати так доканца и не решили поставленную перед задачу только синтаксисом sql), так как это есть самое сложное в этой задаче. Все остальное - тривиальные задачи, на уровне создать страничку и пару простых запросов к базе, но видно у вас это вызывает какие то сложности, так как вы просите выложить вам код.
Я просмотрел всю тему и нашел только этот ваш код. Я знаю что он не оптимален, но это единственное, что Вы предложили.
Виталий Желтяков вне форума Ответить с цитированием
Старый 23.11.2010, 10:21   #90
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

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

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

Прекрасная демонстрация причин вашего "шаманизма"...
Книги,книги и ещё раз книги - сделайте сами себе одолжение.
Andkorol вне форума Ответить с цитированием
Ответ


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



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