PHP.SU

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

Страниц (6): [1] 2 3 4 5 6 »

> Найдено сообщений: 77
leshiy_SV Отправлено: 19 Мая, 2010 - 15:47:01 • Тема: выбор раздела вместе со всеми подразделами • Форум: Программирование на PHP

Ответов: 9
Просмотров: 805
JustUserR спасибо за подсказку.
JustUserR пишет:
сохранять их в дерево которое по сути является многомерных хеш-массивом следующим образом - ключом в хеш-массиве будет являться имя раздела в значение ссылка на его подраздел и соответственно null будет термиринующим значением

можно небольшой примерчик
сделал вот так
PHP:
скопировать код в буфер обмена
  1. $qq = array();
  2.                 $query = "SELECT id, cid FROM `categories`";
  3.                 $result_sql = mysql_query($query);
  4.                 WHILE($result = mysql_fetch_array($result_sql,MYSQL_ASSOC))
  5.                 {
  6.                         $qq[$result['id']] = $result['cid'];
  7.                 }
  8. print_r($qq);
leshiy_SV Отправлено: 19 Мая, 2010 - 15:09:29 • Тема: выбор раздела вместе со всеми подразделами • Форум: Программирование на PHP

Ответов: 9
Просмотров: 805
leshiy_SV пишет:
IF($sql_r !== false) Scan_SQL($sql_r);

рекурсия, функция вызывается повторно и проверяет уже найденные id на наличие в них подразделов и так далее пока больше подразделов не останется.
функция рабочая (проверял несколько раз). просто хотелось чтобы профи своим взглядом проверили правильность действий
leshiy_SV Отправлено: 19 Мая, 2010 - 15:03:17 • Тема: выбор раздела вместе со всеми подразделами • Форум: Программирование на PHP

Ответов: 9
Просмотров: 805
мне содержание (т.е новости или товары), которые входят в этот раздел или подраздел не нужны. нужны только id разделов, которые являются включением определенного раздела
пример вида id раздел sid
CODE (htmlphp):
скопировать код в буфер обмена
  1. 1 раздел 0
  2. -2 подраздел 1
  3. --5 подраздел 2
  4. ---8 подраздел 5
  5. -3 подраздел 1
  6. --6 подраздел 3
  7. 7 раздел 0

так вот указываешь например id 1 и выбираются все включенные подразделы в раздел 1, а это 2, 3, 5, 6, 8
leshiy_SV Отправлено: 19 Мая, 2010 - 13:22:27 • Тема: выбор раздела вместе со всеми подразделами • Форум: Программирование на PHP

Ответов: 9
Просмотров: 805
Djin_dj что то не очень понял ход твоих мыслей. мне нужно просто чтобы задаешь id раздела, ищешь все подразделы, у которых sid = id, заносишь их в массив $sql_r и потом проверяешь уже найденные id из массива $sql_r в разделах поля sid путем повторного вызова функции и т.д.
leshiy_SV Отправлено: 19 Мая, 2010 - 12:30:01 • Тема: выбор раздела вместе со всеми подразделами • Форум: Программирование на PHP

Ответов: 9
Просмотров: 805
Задача такая. выбрать из базы раздел и все его подразделы включая и их под подразделы тоже. Структура базы такая id | name | sid
делаю так:
PHP:
скопировать код в буфер обмена
  1. $sql_res = array(); // массив который содержит id каталогов
  2. function Scan_SQL($sql){
  3.         global $sql_res;
  4.         $sql_r = false;
  5.         $ok = false;
  6.         foreach($sql as $s)
  7.         {
  8.                 $query = "SELECT id FROM  `categories` WHERE `sid` = ".$s." ";
  9.                 $result_sql = mysql_query($query);
  10.                 WHILE($result = mysql_fetch_array($result_sql,MYSQL_ASSOC))
  11.                 {
  12.                         $sql_r[] .= $result['id'];
  13.                         $sql_res[] .= $result['id'];
  14.                         $ok = true;
  15.                         echo $result['id']." _нашлось<br>";
  16.                 }
  17.         }
  18.         IF($sql_r !== false) Scan_SQL($sql_r);
  19.         return $sql_res;
  20. }
  21. $id[]=1;
  22. $arr = Scan_SQL($id);
  23. print_r($arr);
  24.  

вроде код работает, но мне кажется, что что-то все равно не то.
Как на счет правильности кода? или может есть другой вариант по проще
leshiy_SV Отправлено: 08 Апреля, 2010 - 11:24:57 • Тема: Как восстановить кодировку соединения с базой • Форум: Программирование на PHP

Ответов: 1
Просмотров: 245
Изменяю кодировку работы с базой так
PHP:
скопировать код в буфер обмена
  1. mysql_query ("set character_set_client='cp1251'");
  2. mysql_query ("set character_set_results='cp1251'");
  3. mysql_query ("set collation_connection='cp1251_general_ci'");
  4.  

А как после таких изменений обратно вернуть назад прежнею кодировку?
leshiy_SV Отправлено: 25 Марта, 2010 - 08:54:13 • Тема: Помогите со структурой таблицы • Форум: SQL и Архитектура БД

Ответов: 5
Просмотров: 54
leshiy_SV пишет:
связь многие ко многим
об этом можно по подробнее
leshiy_SV Отправлено: 25 Марта, 2010 - 07:59:40 • Тема: Помогите со структурой таблицы • Форум: SQL и Архитектура БД

Ответов: 5
Просмотров: 54
AdMeen пишет:
если "по уму", то 2 таблицы
это я понял, так и сделал. вопрос немного не в этом. А в том, как заносить запись, чтобы она относилась сразу к нескольким категориям?
leshiy_SV Отправлено: 24 Марта, 2010 - 14:33:02 • Тема: Помогите со структурой таблицы • Форум: SQL и Архитектура БД

Ответов: 5
Просмотров: 54
Всем доброго дня. Подскажите. Немного не пойму как лучше организовать структуру таблицы. Таблица будет содержать разные записи, который потом при этом будут разбивать на категории, т.е. какое то поле будет содержать номер категории. так вот в чем загвоздка, не пойму как лучше организовать это с учетом того, что запись может относиться сразу к нескольких категориям. первое что пришло в голову это заносить в поле Categories номера категорий через запятую. только вот как потом их оттуда вытаскивать именно по нужной категории

| ID | Name | Categories | Description |
-------------------------------- --------------
leshiy_SV Отправлено: 10 Марта, 2010 - 14:09:19 • Тема: Обработка Mp3 • Форум: Программирование на PHP

Ответов: 9
Просмотров: 675
Вопрос немножко не по теме, но все же, есть ли какие нибудь функции php чтобы узнать длительность проигрывания mp3 файла?
leshiy_SV Отправлено: 25 Февраля, 2010 - 13:52:01 • Тема: Помогите добавить нули впереди цифр • Форум: Программирование на PHP

Ответов: 7
Просмотров: 1367
В принципе можно и так вроде
leshiy_SV Отправлено: 17 Февраля, 2010 - 12:52:13 • Тема: Создать архив и удалить исходную папку • Форум: Программирование на PHP

Ответов: 15
Просмотров: 2385
Champion пишет:
Хотя это другое ты тоже кое-как сделал.
Я как надо правильно? просто уже ума не приложу. а opendir просто так кусочек воткнул и решил проверить работу скрипт.
никаких изменений о рабочем каталоге я не делал. код представленный здесь это и есть весь код. больше нет ничего.
(Добавление)
После долгих размышлений. решил залезть в саму библиотеку pclzip.lib.php (использовал версию v.2.3) и посмотреть что где и почем. как говориться "Спасение утопающих — дело рук самих утопающих".
Вот что обнаружил, в блоке где идет открытие директории для считывание файлов есть строка $p_hdir = @opendir($p_filename), но закрывающей дескриптор этого каталога нигде не нашел, вместо это было просто unset($p_hdir); что походу не есть правильно. После того как я туда добавил closedir($p_hdir); Свершилось чудо и скрипт мой изначальный заработал Радость
Вот так
leshiy_SV Отправлено: 17 Февраля, 2010 - 12:34:52 • Тема: Создать архив и удалить исходную папку • Форум: Программирование на PHP

Ответов: 15
Просмотров: 2385
Champion пишет:
Не менял ли ты текущую директорию командой chdir?

нет ничего такого.
Блин. после того как добавил opendir? как вы говорили
PHP:
скопировать код в буфер обмена
  1. function myPostAddCallBack($p_event, &$p_header){
  2. IF ($p_header['status'] == 'ok')  // ----- проверяем удачное добавление
  3.    unlink($p_header['filename']); // ----- удаляем файлы
  4. }
  5.  require_once("pclzip.lib.php");
  6. $archive = new PclZip($path.$archiveName);
  7. $unarc=($fileList=$archive->create($path.$folder,
  8.                 PCLZIP_OPT_REMOVE_PATH,$path,
  9.                 PCLZIP_CB_POST_ADD, myPostAddCallBack));
  10.  
  11. if ($dh = opendir($path.$folder)) {
  12.  closedir($dh);
  13.     }
  14. IF(file_exists($path.$archiveName)) rmdir($path.$folder); //-- если архив создан удаляем папку
  15.  

Все заработало. только не понятно почему
leshiy_SV Отправлено: 17 Февраля, 2010 - 12:24:20 • Тема: Создать архив и удалить исходную папку • Форум: Программирование на PHP

Ответов: 15
Просмотров: 2385
Champion пишет:
Тогда ответь про opendir
В смысле? открыть папку ту, которую пытаю удалить?
Champion пишет:
и про то, где ты находишься

удаляемая папка дважды вложена от папки со скриптом
leshiy_SV Отправлено: 17 Февраля, 2010 - 12:05:22 • Тема: Создать архив и удалить исходную папку • Форум: Программирование на PHP

Ответов: 15
Просмотров: 2385
Champion пишет:
пишет тебе текст ошибки

Permission denied или Доступ запрещен
интересно только как он может быть запрещен?
Даже если делаешь так, просто создать папку, заархивировать ее и удалить, то получается все, кроме последнего. Появляется ошибка доступ запрещен.
PHP:
скопировать код в буфер обмена
  1. mkdir($path.$folder, 0777);
  2.  require_once("pclzip.lib.php");
  3.           $archive = new PclZip($path.$folder.".zip");
  4.           $fileList=$archive->create($path.$folder,
  5.                 PCLZIP_OPT_REMOVE_PATH,$path);
  6. rmdir($path.$folder.);
  7.  

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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB