- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Все что нужно знать о DDоS-атаках грамотному менеджеру
И как реагировать на "пожар", когда неизвестно, где хранятся "огнетушители
Антон Никонов
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Вобщем есть база категорий.
Надо перезаписать их заново, изменив пару значений (при этом не просто перезапиать а создать новые, так, что бы подкатегория уже была указана не старая, а новая).
Пример:
Есть РАЗДЕЛ "1112" его главный раздел "1102".
Берем из базы и перезаписывая Узнаем новый ID его родительской категории и перезаписываем. Например если создаваемая новая записать стала 2000, а предварительно созданная главная категория стара 1950, то заменить "1102" на "1950".
Таблички 2. Первая со значениями, вторая с главной и parent_id записью. (это немного упрощает )
$new_category_parent_id_new=array();
$new_category_parent_id=array();
# будем вбивать новый АЙДИ для создаваемой категории... ПОтом заменять старые parent_id но новые из массива.
$sql = "SELECT c.*, cv.* FROM catalog AS c
LEFT JOIN catalog_value AS cv ON c.cat_id = cv.cat_val_id
WHERE cat_pid!='0'
AND cat_type='cat_page' AND cat_rubrika='1'
LIMIT 20";
$res = mysql_query($sql);
$i=0;
while($row=mysql_fetch_assoc($res)){
#$cat_val_positnum и другие берем из $row['...']
$result = mysql_query("INSERT INTO catalog_value (cat_val_positnum,cat_val_name,cat_val_title) VALUES ('".mysql_real_esc($cat_val_positnum)."','".mysql_real_esc($cat_val_name)."','".mysql_real_esc($cat_val_title)."' )");
if ($result){
$cat_id=mysql_insert_id();
$new_category_parent_id[]=$row['cat_id'];
$new_category_parent_id_new=$cat_id;
# КАК ДЕЛАТЬ ДАЛЬШЕ?
$cat_pid = str_replace($new_category_parent_id, $new_category_parent_id_new, $row['cat_pid']);
# перезаписать ID старых РУТ КАТЕГОРИЙ на новые из массива, (в 2 массивах по идее должно храниться - НОВЫЕ АЙДИ И СТАРЫЕ АКДИ, которые перезаписать
А также, если например айди будет 20, а потом парент айди будет 20120 то оно заменит 20-тки на не нужное число. (КАТАЛОГ БОЛЬШОЙ)
$result2 = mysql_query("INSERT INTO catalog (cat_id,cat_rubrika,cat_lang,cat_pid)
VALUES ('".mysql_real_esc($cat_id)."','".mysql_real_esc($cat_rubrika)."','".mysql_real_esc($cat_lang)."','".mysql_real_esc($cat_pid)."')");
Prosto_niki добавил 21.09.2010 в 15:29
Немного добавил
$new_category_parent_id[$row['cat_id']]='/'.$row['cat_id'].'/';
$new_category_parent_id_new[$row['cat_id']]='/'.$cat_id.'/';
echo '<b>'.$i.'</b> <br>';
echo ' cat_val_id:'.$row['cat_val_id'].' cat_val_name:'.$row['cat_val_name'].' - new name: '.$cat_val_name.' cat_val_title:'.$row['cat_val_title'].' -
cat_id:'.$row['cat_id'].' - cat_pid:'.$row['cat_pid'].'<br>';
echo 'Новый айди созданной записи: '.$cat_id;
$cat_pid = str_replace($new_category_parent_id, $new_category_parent_id_new, '/'.$row['cat_pid'].'/');
$cat_pid=str_replace('/','', $cat_pid);
echo '<br> Старый pid: '.$row['cat_pid'].' | Новый pid: '.$cat_pid;
echo '<br>';
Prosto_niki добавил 21.09.2010 в 17:01
Все сработало. Последнее правильно написано.