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

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

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

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

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

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

А собствено что этот запрос делает ?
Цитата:
$query = "SELECT * FROM `articles`
WHERE ((`category1`='{$category1}') OR (`category2`='{$category1}') OR (`category3`='{$category1}') OR (`category4`='{$category1}') OR (`category5`='{$category1}')) AND ((`category1`='{$category2}') OR (`category2`='{$category2}') OR (`category3`='{$category2}') OR (`category4`='{$category2}') OR (`category5`='{$category2}')) AND ((`category1`='{$category3}') OR (`category2`='{$category3}') OR (`category3`='{$category3}') OR (`category4`='{$category3}') OR (`category5`='{$category3}')) AND ((`category1`='{$category4}') OR (`category2`='{$category4}') OR (`category3`='{$category4}') OR (`category4`='{$category4}') OR (`category5`='{$category4}')) AND ((`category1`='{$category5}') OR (`category2`='{$category5}') OR (`category3`='{$category5}') OR (`category4`='{$category5}') OR (`category5`='{$category5}'))";
Вы в комментариях написали
Цитата:
// Выводим список всех статей
. Можно по подробнее ?
ssdm вне форума Ответить с цитированием
Старый 21.11.2010, 17:43   #62
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Скриншоты - дабы не быть голословным.

Кстати - в Google Chrome некорректно работает ваш js для добавления новых полей в Поиске статей(см. скрины).
Ну вы уж простите этих тупиц из Google - я им баг зарепортил,обещали подсуетиться и откорректировать свой браузер соответственно вашему js коду....

to ssdm(на ваш вопрос выше "А собствено что этот запрос делает ?"):
Это - пример высокоскоростного запроса к БД,использующего скрытые потенциалы MySQL.
Вложения
Тип файла: rar screenshots.rar (195.8 Кб, 11 просмотров)

Последний раз редактировалось Andkorol; 21.11.2010 в 17:48. Причина: humor
Andkorol вне форума Ответить с цитированием
Старый 21.11.2010, 19:00   #63
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

А ещё у вас Категории не удаляются,из-за вот этого:


Повторюсь - никогда не торопитесь,тестируйте код.
Тем более - если приподносите его на суд общественности.

PS: ещё у вас в коде НИГДЕ НЕТ проверки данных,поступающих из Форм,а так же отсутствуют обработки перед занесением данных в БД.
Потому случаются забавные вещи:


или вот так:



Я,конечно, понимаю,что скрипт тестовый,но - когда у вас находится время при написании скрипта на создание странички "Автор алгоритма"(!!!!) - и при этом вы не удосужились написать простенькую функцию для безопасности данных,хотя бы просто htmlspecialchars + mysql_real_escape_string - этого я понять никак не могу...
Andkorol вне форума Ответить с цитированием
Старый 21.11.2010, 20:09   #64
Виталий Желтяков
Старожил
 
Аватар для Виталий Желтяков
 
Регистрация: 19.04.2010
Сообщений: 2,702
По умолчанию

Цитата:
А собствено что этот запрос делает ?
Цитата:$query = "SELECT * FROM `articles`
WHERE ((`category1`='{$category1}') OR (`category2`='{$category1}') OR (`category3`='{$category1}') OR (`category4`='{$category1}') OR (`category5`='{$category1}')) AND ((`category1`='{$category2}') OR (`category2`='{$category2}') OR (`category3`='{$category2}') OR (`category4`='{$category2}') OR (`category5`='{$category2}')) AND ((`category1`='{$category3}') OR (`category2`='{$category3}') OR (`category3`='{$category3}') OR (`category4`='{$category3}') OR (`category5`='{$category3}')) AND ((`category1`='{$category4}') OR (`category2`='{$category4}') OR (`category3`='{$category4}') OR (`category4`='{$category4}') OR (`category5`='{$category4}')) AND ((`category1`='{$category5}') OR (`category2`='{$category5}') OR (`category3`='{$category5}') OR (`category4`='{$category5}') OR (`category5`='{$category5}'))";
Это жесткий поиск статей по категориям. Как Вы и хотели. У Меня можно задавать категории только упорядоченно (Например, "Категория1", "Категория2", "Нет категории", "Нет категории", "Нет категории").
Поэтому можно осуществлять подобный поиск.
Цитата:
Предложенный мной гипотетический вариант использования вашего решения:
Ну-ка попробуем ваш "простой" вариант модификации в деле:
Выполните последовательно эти шаги:
1.Создаём тестовую таблицу:
CREATE TABLE `test_enum` (
`id` INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`category_1` ENUM( 'one', 'two', 'three', 'four' ) NULL
) ENGINE = MYISAM ;

2.Добавляем пару тестовых значений:
INSERT INTO `test_enum` (`category_1`) VALUES ('one'), ('two');

3.Применяем ваше "простое" модифицирование:
Задача - изменить названия и кол-во категорий.
ALTER TABLE `test_enum` MODIFY `category_1` ENUM('five','six','seven');

Хватит уже морозиться и нести всякую чушь в ответ на конкретные вопросы и описания проблем вашего скрипта.
Уже все поняли, что данная задача некорректна, один Вы остались. Попробуйте сделать похожее своими алгоритмами - у Вас не получиться. И не у кого не получиться.
Цитата:
Кстати - в Google Chrome некорректно работает ваш js для добавления новых полей в Поиске статей(см. скрины).
Ну вы уж простите этих тупиц из Google - я им баг зарепортил,обещали подсуетиться и откорректировать свой браузер соответственно вашему js коду....
Да, спасибо. У Меня опечатка в скриптах. Исправил см. архив.
Цитата:
Это - пример высокоскоростного запроса к БД,использующего скрытые потенциалы MySQL.
Хорошая шутка
Цитата:
А ещё у вас Категории не удаляются,из-за вот этого:
У Меня этого нет, перезагрузите скрипты.
Цитата:
ещё у вас в коде НИГДЕ НЕТ проверки данных,поступающих из Форм,а так же отсутствуют обработки перед занесением данных в БД.
Да, у Меня нет проверки входящих данных, т.к. это тестовые скрипты.
Вообще-то, напомню Вам, что Я написал данные скрипты для сравнения с вашими, а не для продажи или абсолютного решения данной проблемы.
К тому же Я боюсь, что в моих алгоритмах проверки входящих данных Вы увидите настоящую крамолу, т.к. Я htmlspecialchars + mysql_real_escape_string не ограничиваюсь.
Цитата:
"Автор алгоритма"(!!!!) - и при этом вы не удосужились написать простенькую функцию для безопасности данных,хотя бы просто htmlspecialchars + mysql_real_escape_string - этого я понять никак не могу...
Это стандартный шаблон - или Вы думаете, что Я каждый раз пишу разные тестовые страницы?

---
Жду вашего варианта.
Вложения
Тип файла: rar holywar.rar (32.4 Кб, 11 просмотров)

Последний раз редактировалось Виталий Желтяков; 21.11.2010 в 20:10. Причина: Забыл архив
Виталий Желтяков вне форума Ответить с цитированием
Старый 21.11.2010, 20:23   #65
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
У Меня этого нет, перезагрузите скрипты.
Во втором варианте - у вас это есть, + выше дважды повторяется запрос(line 33-38):
Цитата:
$query = "UPDATE `articles` SET `category5` = 'Нет категории'
WHERE `category5` = '{$category}'";
mysql_query($query);
$query = "UPDATE `articles` SET `category5` = 'Нет категории'
WHERE `category5` = '{$category}'";
mysql_query($query);
Цитата:
К тому же Я боюсь, что в моих алгоритмах проверки входящих данных Вы увидите настоящую крамолу, т.к. Я htmlspecialchars + mysql_real_escape_string не ограничиваюсь.
Слабая отмазка - вы же уже три версии выложили - чего ещё вам бояться???
Andkorol вне форума Ответить с цитированием
Старый 21.11.2010, 20:53   #66
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Кстати - проблема сохранения связей Статья-Категория после редактирования категории осталась не решенной:
Пример со скринами,ибо уже не верят наслово...
Ищем статьи с "Категорией4" - например:

Находим 2 шт:

Изменяем название этой категории:

По логике вещей - все статьи,ранее принадлежавшие к "Категории4" - теперь должны принадлежать к "Категории4-new",потому что мы же просто заменили её название:

Но - увы,чуда не случилось...:

Последний раз редактировалось Andkorol; 21.11.2010 в 21:33. Причина: Photo
Andkorol вне форума Ответить с цитированием
Старый 21.11.2010, 21:06   #67
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

А вот причина,по которой статьи с новой категорией не найдены.
Причина осталась прежней - изменение названия Категории затронуло те поля таблицы,которые ни в одной из статей не имеют старого значения "Категория4":

Помните результаты поиска по старому названию "Категория4" - так вот в этих записях ничего не изменилось:


Уж почему в `category1` не изменилось название - не ведаю,а разбираться лень уже.

Вот такое вот "увы" получается...
Ждём version4, профиксенную окончательно,надеюсь.

PS: ну капец просто,посмотрел version3 внимательнее...
Цитата:
У Меня этого нет, перезагрузите скрипты.
Ну перезагрузил,и что - как не удалялась категория,так и не удаляется!!!
Ну проверьте ж вы уже - ну как ещё указать вам на ваши ошибки?
(там ещё и один лишний запрос - это ж для вас вообще OMG жуткий!!!!)

Последний раз редактировалось Andkorol; 21.11.2010 в 21:25. Причина: Бли-и-ин!!!
Andkorol вне форума Ответить с цитированием
Старый 21.11.2010, 22:48   #68
Виталий Желтяков
Старожил
 
Аватар для Виталий Желтяков
 
Регистрация: 19.04.2010
Сообщений: 2,702
По умолчанию

Цитата:
У Меня этого нет, перезагрузите скрипты.
Извеняюсь, Я действительно попутал версии.
Цитата:
Ждём version4, профиксенную окончательно,надеюсь.
Смотрите архив.
Вместе в Вами Я пофиксил 6 опечаток и 2 ошибки, за что спасибо:
- Убраны повторяющиеся запросы в двух файлах. На работу не влияли.
- Исправлена ошибка с неработающей первой категорией.
- Исправлена опечатка связанная с предыдущей ошибкой.
- Исправлена опечатка в js скриптах, из-за которых в Google Chome наблюдались проблемы с поиском.
---
Жду вашего варианта.
Вложения
Тип файла: rar holywar v4.rar (32.5 Кб, 8 просмотров)
Виталий Желтяков вне форума Ответить с цитированием
Старый 22.11.2010, 00:26   #69
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Я вот не пойму - вы намеренно игнорируете проблему "связей Статья-Категория после редактирования названия Категории" - или просто не знаете способа,как её решить???
Так я вам могу подсказать, если что....

Я вам об этой проблеме сообщил уже раз ... несколько, вобщем, даже скринами проиллюстрировал.
Попробую ещё раз кратко пояснить суть проблемы:
Вот у вас есть такая категория - "Категория9".
Есть 5 статей,связанных с этой категорией.
Допустим,в один прекрасный момент вы решаете изменить название "Категории9" на другое,которое по-вашему более точно отображает смысл данной категории статей.
Вот вы берёте эту "Категорию9" - и переименовываете в "Категорию9-new"(например).

Техническое отступление:
При этом у вас в БД изменения происходят не во всех полях ENUM, которые содержат информацию о категориях статей - а только в тех,которые не содержали в себе значение "Категория9" ни в одной из записей,имеющихся в таблице(в случае именно с "Категорией9" (из вашего дампа) изменения происходят в `category2`, `category4`, `category5`, значения же полей ENUM `category1` и `category3` - остались без изменений(т.е. по-прежнему содержат "Категория9" вместо нового "Категория9-new") ).

Это всё я говорю о структуре таблицы `articles`, а не о том,какие названия категорий выводит ваш скрипт - ведь названия категорий он читает из файла,куда ваш скрипт переименования (rename.php) бодренько вносит изменения независимо(!!!) от того,полностью ли произошло переименование Категории во всех полях.

Вернёмся к нашей проблеме.
Итак,категорию мы якобы переименовали (якобы - потому что не во всех полях).
Но при этом все наши 5 статей,которые относятся к почившей ныне "Категории9" - по-прежнему к ней и относятся!!!Прошу заметить - в записях этих статей в БД по-прежнему стоит значение "Категория9" - которой уже нет.
А Поиск-то уже ищет по новому названию категории(из файлика читает новое название) - старого уже нет,стёрли,заменили,нет его совсем!!!
Всё,приехали!

Результат - вы изменили название категории,и при этом потеряли все связи со всеми статьями,ранее к ней принадлежащими.
Но статьи-то по-прежнему актуальны для данной категории,они по-прежнему должны быть с ней связаны!!!Ведь смысл категории тот же,просто чуть подкорректировали название категории - и всё!!!

Вы понимаете,насколько это "ОЙ!!!!" для какой-нибудь девочки-менеджера,в чьи обязанности входит добавлять/редактировать статьи/категории для данного ресурса.
Что ей теперь делать - пересматривать сотни статей в попытках восстановить связь с данной категорией???

Вот суть проблемы, с которой столкнётся Пользователь,использующий ваш скрипт.
Проблема это - самая обыденная,так что решить вам её нужно по-любому,иначе грош-цена вашим стараниям, если рядовая задача приводит к такому вот фэйлу!

О гибкости при решениии широкого спектра задач я говорил не зря - задачи бывают самые разные,причём большинство из них просты по смыслу - и при этом весьма неудобны и сложны в реализации с точки зрения программиста.

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

Цитата:
Я вот не пойму - вы намеренно игнорируете проблему "связей Статья-Категория после редактирования названия Категории" - или просто не знаете способа,как её решить???
Так я вам могу подсказать, если что....
Вы какую версию использовали?
Я только, что проделал данные операции с переименованием и поиском, проверил данные в базе - всё верно.
В версии 4 всё должно быть правильно.
Цитата:
Это всё я говорю о структуре таблицы `articles`, а не о том,какие названия категорий выводит ваш скрипт - ведь названия категорий он читает из файла,куда ваш скрипт переименования (rename.php) бодренько вносит изменения независимо(!!!) от того,полностью ли произошло переименование Категории во всех полях.
Я использую более сложную систему, где эта возможность ошибки предусмотрена.
Виталий Желтяков вне форума Ответить с цитированием
Ответ


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



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