Синхронизация SQL баз SMF и JOOMLA

Тема в разделе "Актуально, только не в тему", создана пользователем crazyASD, 20.10.2007.

  1. crazyASD
    Offline

    crazyASD Недавно здесь

    Регистрация:
    14.03.2007
    Сообщения:
    16
    Симпатии:
    0
    Добрый день!
    Возникла надобность синхронизировать SQL базу SMF и Joomla - я придумал алгоритм действий, а как воплотить в запрос не совсем понимаю:
    Итак алгоритм действий: имеется база jos_users и smf_members в них имеются столбцы username и membername
    Сравниваем два значения:

    SELECT memberName
    FROM smf_members
    LEFT JOIN mos_users ON mos_users.username=smf_members.memberName
    WHERE mos_users.username IS NULL

    Предварительно создав столбец is_registered в mos_users

    ALTER TABLE mos_users ADD is_registered TEXT

    Теперь собственно вопрос:
    Как вывести результат сравнения баз в записание еденицы (1) в столбец is_registered если username и membername совпадают?
    Надеюсь на вашу помощь.
     
  2.  
  3. Jkr
    Offline

    Jkr Russian Joomla! Team

    Регистрация:
    04.08.2006
    Сообщения:
    465
    Симпатии:
    27
    Пол:
    Мужской
    Ответ: Синхронизация SQL баз SMF и JOOMLA

    начнем с того, что синхронизируете вы не базы, а таблицы внутри одной БД.
    далее хотелось бы знать, а зачем? ведь есть готовые работающие решения (см. функцию синхронизации в мосту от joomlahacks).
    наконец, запрос будет что-тот типа:
    update mos_users.is_registered = 1 where mos_users.username=smf_members.memberName
     
  4. crazyASD
    Offline

    crazyASD Недавно здесь

    Регистрация:
    14.03.2007
    Сообщения:
    16
    Симпатии:
    0
    Ответ: Синхронизация SQL баз SMF и JOOMLA

    И да и нет. Просто нужно удалить из джумлы всех несуществующих в базе SMF пользователей, а то появляются косяки с регистрацией у людей.... а для этого их както рассортировать надо, 15 000 записей вручную перелопачивать не хочется, а за совет спасибо!

    Добавлено через 16 минут
    Кстати не сработала команда, пишет ошибка в синтаксисе.
     
    Последнее редактирование: 21.10.2007
  5. Jkr
    Offline

    Jkr Russian Joomla! Team

    Регистрация:
    04.08.2006
    Сообщения:
    465
    Симпатии:
    27
    Пол:
    Мужской
    Ответ: Синхронизация SQL баз SMF и JOOMLA

    Код (CODE):
    1. //берем все записи из smf_members
    2. $bla = "SELECT * FROM smf_members";
    3. $res=mysql_query($bla);
    4.  
    5. // для каждой записи делаем следующее:
    6. while($rs=mysql_fetch_object($res)) {
    7. //в переменную заносим значение поля memberName из таблицы smf_members
    8. $blabla = $rs->memberName;
    9. //в базе в таблице mos_users ставим is_registred для тех, у гого username совпадает со значением переменной
    10. $update = "UPDATE mos_users SET is_registered = '1' WHERE username=$blabla";
    11. $sql = mysql_query($update);
    12. }
     
  6. crazyASD
    Offline

    crazyASD Недавно здесь

    Регистрация:
    14.03.2007
    Сообщения:
    16
    Симпатии:
    0
    Ответ: Синхронизация SQL баз SMF и JOOMLA

    Скрипт ругается!
    Код (CODE):
    1. Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in d:\appserv\www\index4.php on line 9

    MySQL 3.23.49

    Может поэтому?
     
  7. Fanamura
    Offline

    Fanamura Доброта

    Регистрация:
    12.03.2007
    Сообщения:
    5 108
    Симпатии:
    159
    Пол:
    Мужской
    Ответ: Синхронизация SQL баз SMF и JOOMLA

    crazyASD, appserv зло :)
     
  8. crazyASD
    Offline

    crazyASD Недавно здесь

    Регистрация:
    14.03.2007
    Сообщения:
    16
    Симпатии:
    0
    Ответ: Синхронизация SQL баз SMF и JOOMLA

    Знаю, но на кошках, т.е. на реальном хостинге, сам понимаешь боязно....
     
  9. Jkr
    Offline

    Jkr Russian Joomla! Team

    Регистрация:
    04.08.2006
    Сообщения:
    465
    Симпатии:
    27
    Пол:
    Мужской
    Ответ: Синхронизация SQL баз SMF и JOOMLA

    чего бояться? бэкап 2-х таблиц и все... хоть каждые 20 секунд восстанавливай и по-новой пробуй.
     
  10. crazyASD
    Offline

    crazyASD Недавно здесь

    Регистрация:
    14.03.2007
    Сообщения:
    16
    Симпатии:
    0
    Ответ: Синхронизация SQL баз SMF и JOOMLA

    Эээхх, блин попробую....

    Добавлено через 9 часов 10 минут
    Я единственное не понял, как я mySQL скрипт выполню, когда он не будет знать ни адреса, ни пароля/логина базы на серваке?
    ЗЫ. в пхп не силен, хочу это выполнить через PHPmyAdmin
     
    Последнее редактирование: 25.10.2007
  11. Jkr
    Offline

    Jkr Russian Joomla! Team

    Регистрация:
    04.08.2006
    Сообщения:
    465
    Симпатии:
    27
    Пол:
    Мужской
    Ответ: Синхронизация SQL баз SMF и JOOMLA

    в начале скрипта:

    Код (CODE):
    1. // подходим к БД
    2. $db=mysql_connect('localhost', 'логин_к_БД', 'пароль_к_БД');
    3. mysql_select_db('имя_БД');
     
  12. crazyASD
    Offline

    crazyASD Недавно здесь

    Регистрация:
    14.03.2007
    Сообщения:
    16
    Симпатии:
    0
    Ответ: Синхронизация SQL баз SMF и JOOMLA

    Да в общем сработало, НО! Скрипт честно пометил все 15 с лишним тысяч юзеров в базе mos_users.username еденицей
    Хотя должен пометить всего 7 с половиной!
    Что делать?
     
  13. Jkr
    Offline

    Jkr Russian Joomla! Team

    Регистрация:
    04.08.2006
    Сообщения:
    465
    Симпатии:
    27
    Пол:
    Мужской
    Ответ: Синхронизация SQL баз SMF и JOOMLA

    залить бэкап :)
    после этого выводить содержимое каждой переменной, чтобы узнать в чем проблема...
     
  14. crazyASD
    Offline

    crazyASD Недавно здесь

    Регистрация:
    14.03.2007
    Сообщения:
    16
    Симпатии:
    0
    Ответ: Синхронизация SQL баз SMF и JOOMLA

    Эхх, кошмар в общем... Хотя тут явный глюк в скрипте, потому как 15 тысяч юзеров джумлы не может поместиться в 7 тысячах у SMF
     

Поделиться этой страницей

Загрузка...