Joker-jar

Joker-jar
Рейтинг
171
Регистрация
26.08.2010

Реально на сервере html'ки или php? Если, допустим, надо чтобы с *.php редиректил на html, а через *.html обращался к php, то решение gent'а должно подойти, только перед RewriteRule нужно еще правило редиректа

Еще можно такой вариант:

<pre>

<?php
if (isset($_GET['type'])) print_r($_GET['type']);
?>
</pre>

Запрос такого вида:

http://test-domain.sha81b.local/1.php?type[]=1&type[]=2&type[]=4

Результат:

Array

(
[0] => 1
[1] => 2
[2] => 4
)

Фрейм, как мне кажется, устаревшая технология. Попробуйте пересмотреть этот элемент вашего сайта, можно ли организовать его без использования фрейма. Либо посмотрите в сторону ajax

Не более ста руб за найденную уязвимость. Зависит от типа и представляемой опасности. Предлагаю первым трем обратившимся здесь выполнить услугу бесплатно. Напоминаю, что работаю только с самописными движками (либо значительно переработанными готовыми), над безопасностью cms'ок есть кому работать.

В процессе работы на сайте может появиться немного мусора (например, комментарий в гостевой книге, не несущий смысловую нагрузку), который нужно будет почистить, о нем сообщаю.

Joker-jar: профиль на Античате

репутация

Бывший член группы РОА, ушел по собственному желанию

В таком случае, лучше всю вложенность возложить на индексы id и parentid, избавившись от children. У меня на работе на разрабатываемом мной корпоративном сайте телефонный справочник имеет древовидную структуру, имеется php-функция, строящая по данным из таблицы древовидный ассоциативный php-массив, если нужно, поделюсь

Создал таблицу:

mysql> create table test (id integer primary key auto_increment, name text, parentid integer, children text);

Query OK, 0 rows affected (0.49 sec)

Занес значения:

mysql> insert into test(name, parentid, children) values('корень 1', 0, ''), ('подкатегория', 1, '5,6,7'), ('корень 2', 0, ''), ('еще подкатегория', 3, '8,9,10'), ('пять', 2, '5'), ('шесть', 2, '6'), ('семь', 2, '7'), ('восемь', 4, '8'), ('девять', 4, '9'), ('десять', 4, 10);

Query OK, 10 rows affected (0.00 sec)
Records: 10 Duplicates: 0 Warnings: 0

Получилось вот что:

mysql> select * from test;

+----+---------------------------------+----------+----------+
| id | name | parentid | children |
+----+---------------------------------+----------+----------+
| 1 | корень 1 | 0 | |
| 2 | подкатегория | 1 | 5,6,7 |
| 3 | корень 2 | 0 | |
| 4 | еще подкатегория | 3 | 8,9,10 |
| 5 | пять | 2 | 5 |
| 6 | шесть | 2 | 6 |
| 7 | семь | 2 | 7 |
| 8 | восемь | 4 | 8 |
| 9 | девять | 4 | 9 |
| 10 | десять | 4 | 10 |
+----+---------------------------------+----------+----------+
10 rows in set (0.00 sec)

Далее, список категорий с подкатегориями можно получить следующим образом:

mysql> select tab1.id, tab1.name, tab2.id, tab2.name, tab2.children from test as tab1 left join test as tab2 on (tab1.parentid = 0 and tab2.parentid = tab1.id) where tab1.parentid = 0;

+----+----------------+------+---------------------------------+----------+
| id | name | id | name | children |
+----+----------------+------+---------------------------------+----------+
| 1 | корень 1 | 2 | подкатегория | 5,6,7 |
| 3 | корень 2 | 4 | еще подкатегория | 8,9,10 |
+----+----------------+------+---------------------------------+----------+
2 rows in set (0.00 sec)

а список категорий последнего уровня по циклу для каждой записи так:

select * from test where id in ($ids);

где $ids - значение последнего столбца в предыдущем результате. Например:

mysql> select * from test where id in (5,6,7);

+----+------------+----------+----------+
| id | name | parentid | children |
+----+------------+----------+----------+
| 5 | пять | 2 | 5 |
| 6 | шесть | 2 | 6 |
| 7 | семь | 2 | 7 |
+----+------------+----------+----------+
3 rows in set (0.00 sec)

Если phpmyadmin локализован и кириллица интерфейса отображается нормально, а вопросиками именно данные с БД, то это точно не проблема кодировки веб-сервера. Вопросы вместо букв, как правило, возникают, когда данные в базе хранятся в cp1251, а клиент пытается выставить юникод. Вы говорите, что на сайте отображается нормально. В коде нигде не выполняется запрос:

set names 'cp1251';

?

В phpmyadmin на главной странице измените параметр "Сопоставление соединения с MySQL" на cp1251_general_ci

Что значит объединить? Склеить друг с другом по горизонтали? По вертикали?

Есть вроде штатный модуль, или у этого больше возможностей?

Всего: 970