Здравствуйте! Есть 2 базы MySQL. В каждой базе есть одинаковые таблицы content. В этих таблицах есть поля ID и Title. В 2-х базах разное количество строк, но среди них есть элементы с одинаковыми Title, но разными ID. Моя задача вывести на экран все элементы с одинаковыми Title и их ID, чтобы получить таблицу различия ID. У меня есть скрипт, который по этому принципу заменяет ID из одной базы в другой если имена элементов совпадают. Но мне не нужно ничего менять - просто вывести их, если условие соблюдается. Вот я не могу понять, как это сделать. PHP: <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <?php echo "Соединяемся с двумя базами"; echo '<hr>'; // Соединиться с с двумя базами $dbh1 = mysql_connect('localhost', 'user1', 'pass1'); mysql_query("SET NAMES utf8"); $dbh2 = mysql_connect('localhost', 'user2', 'pass2'); mysql_query("SET NAMES utf8"); echo $dbh1; echo $dbh2; echo "Выполняем mysql_select_db"; echo '<hr>'; mysql_select_db('biblsoft_base', $dbh1); mysql_select_db('mobifile_base', $dbh2); if (!$dbh1) { die('Not connected : ' . mysql_error()); } if (!$dbh2) { die('Not connected : ' . mysql_error()); } echo "Выполнить запрос (набор данных содержит результат)"; // Выполнить запрос (набор данных $rs содержит результат) $rs = mysql_query('select * from base1_content', $dbh1); echo "Запрос выполнен"; echo "Каждый ряд становится массивом с помощью функции mysql_fetch_array"; // Цикл по recordset $rs // Каждый ряд становится массивом ($row) с помощью функции mysql_fetch_array while($row = mysql_fetch_array($rs)) { // Отображаем значения поля metadesc // Присваиваем новой переменной значения поля metadesc $title = $row['title']; $id = $row['id']; // Записываем значения поля metadesc во вторую базу $sql = mysql_query ('UPDATE base2_content SET id = "'.$id.'" WHERE title = "'.$row['file_title'].'"', $dbh2); if ($id) { echo '<p>'.$id.' '.$title.'</p>'; } } echo "Finished"; // Закрыть соединение с БД mysql_close(); ?>
Разместите таблицы в одной БД и далее: Код (Text): SELECT `t1`.`Title`, `t1`.`ID` `id1`, `t2`.`ID` `id2` FROM `t1` LEFT JOIN `t2` USING(`Title`)
Короче, перенес одну таблицу в одну базу. Пытаюсь вот так вывести - не работает: PHP: <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <?php /*Подключаемся к БД*/ $db = mysql_connect('localhost','user','pass'); mysql_select_db('base', $db); /*Делаем запрос к БД*/ $result = mysql_query ("SELECT `table_content`.`Title`, `title`.`ID` `id`, `table_content_2`.`ID` `id` FROM `table_content` LEFT JOIN `table_content_2` USING(`Title`)"); /*Преобразовываем результат в массив*/ $myrow = mysql_fetch_array($result); /*Выводим результат на экран*/ echo $myrow['title']; ?>
Сделайте нормальную выборку и вывод, как в первом посте. И если нужно пересечение, то INNER JOIN, а не LEFT JOIN. Я поторопился в пред. посте.