Добрый день! Возникла надобность синхронизировать 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 совпадают? Надеюсь на вашу помощь.
Ответ: Синхронизация SQL баз SMF и JOOMLA начнем с того, что синхронизируете вы не базы, а таблицы внутри одной БД. далее хотелось бы знать, а зачем? ведь есть готовые работающие решения (см. функцию синхронизации в мосту от joomlahacks). наконец, запрос будет что-тот типа: update mos_users.is_registered = 1 where mos_users.username=smf_members.memberName
Ответ: Синхронизация SQL баз SMF и JOOMLA И да и нет. Просто нужно удалить из джумлы всех несуществующих в базе SMF пользователей, а то появляются косяки с регистрацией у людей.... а для этого их както рассортировать надо, 15 000 записей вручную перелопачивать не хочется, а за совет спасибо! Добавлено через 16 минут Кстати не сработала команда, пишет ошибка в синтаксисе.
Ответ: Синхронизация SQL баз SMF и JOOMLA Код (CODE): //берем все записи из smf_members $bla = "SELECT * FROM smf_members"; $res=mysql_query($bla); // для каждой записи делаем следующее: while($rs=mysql_fetch_object($res)) { //в переменную заносим значение поля memberName из таблицы smf_members $blabla = $rs->memberName; //в базе в таблице mos_users ставим is_registred для тех, у гого username совпадает со значением переменной $update = "UPDATE mos_users SET is_registered = '1' WHERE username=$blabla"; $sql = mysql_query($update); }
Ответ: Синхронизация SQL баз SMF и JOOMLA Скрипт ругается! Код (CODE): 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 Может поэтому?
Ответ: Синхронизация SQL баз SMF и JOOMLA Знаю, но на кошках, т.е. на реальном хостинге, сам понимаешь боязно....
Ответ: Синхронизация SQL баз SMF и JOOMLA чего бояться? бэкап 2-х таблиц и все... хоть каждые 20 секунд восстанавливай и по-новой пробуй.
Ответ: Синхронизация SQL баз SMF и JOOMLA Эээхх, блин попробую.... Добавлено через 9 часов 10 минут Я единственное не понял, как я mySQL скрипт выполню, когда он не будет знать ни адреса, ни пароля/логина базы на серваке? ЗЫ. в пхп не силен, хочу это выполнить через PHPmyAdmin
Ответ: Синхронизация SQL баз SMF и JOOMLA в начале скрипта: Код (CODE): // подходим к БД $db=mysql_connect('localhost', 'логин_к_БД', 'пароль_к_БД'); mysql_select_db('имя_БД');
Ответ: Синхронизация SQL баз SMF и JOOMLA Да в общем сработало, НО! Скрипт честно пометил все 15 с лишним тысяч юзеров в базе mos_users.username еденицей Хотя должен пометить всего 7 с половиной! Что делать?
Ответ: Синхронизация SQL баз SMF и JOOMLA залить бэкап после этого выводить содержимое каждой переменной, чтобы узнать в чем проблема...
Ответ: Синхронизация SQL баз SMF и JOOMLA Эхх, кошмар в общем... Хотя тут явный глюк в скрипте, потому как 15 тысяч юзеров джумлы не может поместиться в 7 тысячах у SMF