Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: перенос информации из одной базы в другую
Форумы портала PHP.SU » PHP » SQL и Архитектура БД » перенос информации из одной базы в другую

Страниц (1): [1]
 

1. Voliruch - 27 Июля, 2010 - 21:36:33 - перейти к сообщению
Здравствуйте!

Есть 2 системы дистанционного обучения, одна из них называется moodle, может кто слышал.
Мне необходимо при помощи скрипта php осуществить перенос уже имеющейся инфы первой базы в базу moodle.
Но у меня возникла проблема. Просто так перенести данные в moodle не получается.

Данные добавленные с помощью моего скрипта не отображаются в самом moodle, хотя в таблицах базы они без проблем отображаются.

Опытным путем, я частично избавился от этой проблемы.
Когда я добавляю данные в таблицу moodle через свой скрипт и после этого сразу делаю переход на страницу системы с id только что добавленного курса, то moodle без проблем начинает отображать информацию.
Вот этот переход:

PHP:
скопировать код в буфер обмена
  1. echo "<html><head>
  2. <meta HTTP-EQUIV='Refresh' Content='1; URL=http://moodle/course/view.php?id=$id'>  
  3. </head></html>";


Но этот переход срабатывает только для одного добавления, т.е. если я хочу в цикле добавить несколько записей, то переход уже не осуществляется. Может кто подскажет, что можно сделать, или есть может быть другой вариант такого решения.

А вот 2 моих скрипта:
Файл с формой
В первом скрипте я делаю запрос к первой базе и в виде чекбоксов извлекаю нужные мне курсы для добавления в moodle.
PHP:
скопировать код в буфер обмена
  1.  
  2. <form name="forma" action="formselect.php" method="post">
  3. <?PHP
  4. //подключаюсь к первой базе
  5. include("confelearn.php");
  6. $select=mysql_query("select * from Courses limit 10");
  7. //в цикле вывожу чекбоксы
  8. while($mass=mysql_fetch_array($select))
  9.    {
  10.        
  11.         echo "<label>$mass['Title']</label>";
  12.         echo "<input name=cid[] type='checkbox' value=".$mass['CID']." /><br>";
  13.    }
  14. ?>
  15. <input name="sub" type="submit" value="Добавить курс в базу Moodle" />
  16. </form>
  17.  
  18.  


Файл обработчик

PHP:
скопировать код в буфер обмена
  1.  
  2. include("confelearn.php");
  3. $cid = $_POST['cid'];
  4. if(isset($cid))
  5. {
  6.  
  7.     foreach($cid as $id)
  8.     {
  9.        echo $id."<br>";
  10.      //подключаюсь к базе мудла
  11.      include ("configmoodlle.php");    
  12. //добавляю в таблицу базы мудла
  13. $ins=mysql_query("insert into mdl_course (category, id,  fullname, format) values (1, $id, 'ууу', 'topics') ");
  14.  
  15. if ($ins)
  16.  
  17. {
  18. echo "<html><head>
  19. <meta HTTP-EQUIV='Refresh' Content='1; URL=http://moodle/course/view.php?id=$id'>  
  20. </head></html>";
  21. };
  22.  


В общем как я и писал выше, переход на страницу проходит только для одной итерации цикла, а надо для множества.
2. Uchkuma - 27 Июля, 2010 - 22:36:39 - перейти к сообщению
Если у вас поле id auto_increment, при занесении в новую таблицу сделайте его значение null вместо $id. А переходите на страницу "http://moodle/course/view.php?id=".mysql_insert_id()
3. Voliruch - 27 Июля, 2010 - 23:10:50 - перейти к сообщению
Мне как раз нужно id добавлять вручную.
Так как надо id выдернуть из первой базы и добавить данные с таким же id во вторую.
4. Рустам_7444 - 15 Декабря, 2017 - 15:04:09 - перейти к сообщению
у меня такой проблема надо передать оценки из сайта дистанционного обучения на внутреннего сайта университета как написать код для этой работы пожалуйста подскажите... спасибо за ранее

 

Powered by ExBB FM 1.0 RC1