Добавление содержимого из нескольких таблиц в другую таблицу - PullRequest
0 голосов
/ 29 июня 2011

Я работаю над простым сценарием, который нацелен на выбор всех таблиц базы данных MySQL и размещение их данных в другой таблице.Рассматриваемые таблицы имеют аналогичную структуру.Моя цель состоит в том, чтобы выполнить это без необходимости писать имя каждой таблицы (чтобы я мог управлять сотнями из них).

Так что для этого примера у меня будет alpha и beta и хотите, чтобы их содержимое было скопировано в delta .Я попытался сделать это с помощью цикла, в котором перечислены имена всех таблиц в базе.А затем используйте запрос MySQL с переменной.Проблема в том, что он все время возвращает мне сообщение об ошибке: Таблица 'test_db.Resource' не существует (test_db - это имя моей базы, а Resource - ... я понятия не имею!)

Вы знаете, как это сделать?

Вот мой код:

<?php
// Make a MySQL Connection
mysql_connect("localhost", "root", "root") or die(mysql_error());
mysql_select_db("test_db") or die(mysql_error());


   $tables = mysql_list_tables("test_db");

   while (list($table) = mysql_fetch_row($tables)) {
      echo "$table <br />";
   }

// query($q);
mysql_query("INSERT INTO delta 
 SELECT null, name, age FROM $tables ") 
or die(mysql_error());

?>

1 Ответ

0 голосов
/ 29 июня 2011
<?php
// Make a MySQL Connection
mysql_connect("localhost", "root", "root") or die(mysql_error());
mysql_select_db("test_db") or die(mysql_error());


   $tables = mysql_list_tables("test_db");

   while (list($table) = mysql_fetch_row($tables)) {
      mysql_query("INSERT INTO delta 
      SELECT null, name, age FROM $table ") 
      or die(mysql_error());
   }
?>

Это должно работать нормально, но mysql_list_tables("test_db"); также вернет дельту, поэтому у вас будут дубликаты данных. будет проще иметь имена таблиц в массиве и перебирать

$tables = array("alpha","beta");
foreach ($tables as $table){
   mysql_query("INSERT INTO delta 
          SELECT null, name, age FROM $table ") 
          or die(mysql_error());
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...