Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> problem z załadowaniem danych XML do bazy
huka
post 15.07.2004, 16:09:03
Post #1





Grupa: Zarejestrowani
Postów: 96
Pomógł: 0
Dołączył: 10.03.2004
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Witam,
mam problem z załadowaniem danych z pliku XML do bazy danych. Napisałem skrypt za pomocą którego pobierane są dane z pliku i przetwarzane przez parser. Wszystkie dane są wyświetlane na stronie jednak nie są wstawiane do tabeli. Nie wiem dlaczego tak się dzieje.
Jeżeli macie jakieś pomysły to dajcie znać.
Go to the top of the page
+Quote Post
Seth
post 15.07.2004, 16:20:44
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 335
Pomógł: 6
Dołączył: 7.03.2002

Ostrzeżenie: (0%)
-----


Moja magiczna kula mowi mi, ze powodem tego jest brak podlaczonego tostera do pradu...

Mozna jasniej ? Jakis kod, ktorym wzucasz to do bazy, etc...
Go to the top of the page
+Quote Post
huka
post 15.07.2004, 16:28:51
Post #3





Grupa: Zarejestrowani
Postów: 96
Pomógł: 0
Dołączył: 10.03.2004
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


tak wygląda skrypt:
  1. <?php 
  2. DEFINE (DB_USER,&#092;"praca\");
  3. DEFINE (DB_PASSWORD,&#092;"praca\");
  4. DEFINE (DB_HOST,&#092;"localhost\");
  5. DEFINE (DB_NAME,&#092;"praca\");
  6.  
  7. $db_connection = mysql_connect(DB_HOST);
  8. if(!$db_connection){
  9. print ERR_DB_CONNECT;
  10. if (mysql_errno()) 
  11. echo &#092;"<BR>Numer błędu:\" .mysql_errno(). \": \" .mysql_error() . \"<BR>n\";
  12. } 
  13.  
  14. $db_selected = mysql_select_db(DB_NAME);
  15. if(!$db_selected){
  16. print ERR_DB_CHANGE;
  17. if (mysql_errno()) 
  18. echo &#092;"<BR>Numer błędu:\" .mysql_errno(). \": \" .mysql_error() . \"<BR>n\";
  19. } 
  20. DEFINE (ERR_DB_CONNECT,&#092;"Problem z poł&plusmn;czeniem do bazy danych.\");
  21. DEFINE (ERR_DB_CHANGE,&#092;"Problem z baza danych.\");
  22.  
  23.  
  24.  
  25. // Ten skrypt przetwarza dokument XML, który pobiera jako argument.
  26.  
  27. if($student)
  28. $student_id = $student;
  29.  
  30. print(&#092;"<center><br><h4><b>Dane Studentów załadowanych z pliku XML </h4><BR></center>\");
  31. print(&#092;"<center><table border=1>\");
  32. print(&#092;"<tr><th align=\"center\\">Imie</th>
  33. <th align=&#092;\"center\">Nazwisko</th>
  34. <th align=&#092;\"center\">Numer indeksu</th>
  35. <th align=&#092;\"center\">Rok studiów</th>
  36. <th align=&#092;\"center\">Email</th>
  37. <th align=&#092;\"center\">Login</th>
  38. <th align=&#092;\"center\">Haslo</th></tr>\");
  39. // Zdefiniowanie funkcji wymaganych do obsługi różnych fragmentów informacji.
  40.  
  41. function handle_open_element ($p,$element){
  42. global $zapytanie;
  43. global $student_id;
  44. $element = strtolower($element);
  45. switch ($element) {
  46. case 'imie':
  47. $zapytanie .=&#092;"Imie\";
  48. break; 
  49. case 'nazwisko':
  50. $zapytanie .=&#092;",Nazwisko\";
  51. break; 
  52. case 'nr_inde':
  53. $zapytanie .=&#092;",Nr_indeksu\";
  54. break; 
  55. case 'rok_stu':
  56. $zapytanie .=&#092;",Rok_studiow\";
  57. break; 
  58. case 'email':
  59. $zapytanie .=&#092;",Email\";
  60. break; 
  61. case 'login':
  62. $zapytanie .=&#092;",Login\";
  63. break; 
  64. case 'haslo':
  65. $zapytanie .=&#092;",Haslo\";
  66. break; 
  67. case 'student':
  68. print(&#092;"<tr>\");
  69. $zapytanie=&#092;"INSERT INTO Studenci SET \";
  70. $zapytanie .=&#092;"id_studenta = '$student_id\";
  71. $zapytanie .=&#092;"Imie = '$imie', \";
  72. $zapytanie .=&#092;"Nazwisko = '$nazwisko', \";
  73. $zapytanie .=&#092;"Nr_indexu = '$nr_inde', \";
  74. $zapytanie .=&#092;"Rok_studiow = '$rok_stu', \";
  75. $zapytanie .=&#092;"Email = '$email', \";
  76. $zapytanie .=&#092;"Login = '$login', \";
  77. $zapytanie .=&#092;"Haslo= '$haslo'\";
  78.  
  79. break;
  80.  
  81. default:
  82. break;
  83. }
  84.  
  85. return $zapytanie;
  86. }
  87.  
  88. function handle_close_element ($p, $element) {
  89. global $zapytanie;
  90. $element = strtolower($element);
  91. if ($element == 'student'){
  92. // echo \"$zapytanie\";
  93. echo &#092;"</tr>\";
  94. $query_result = mysql_query($zapytanie);
  95. if(!query_result){
  96. print ERR_DB_CONNECT;
  97. if (mysql_errno()) 
  98. echo mysql_errno(). &#092;"(!): \" .mysql_error() . \"<BR>n\";
  99.  }
  100.  
  101.  }
  102. }
  103.  
  104. function handle_character_data ($p, $cdata) {
  105. global $zapytanie;
  106.  if ($cdata<>&#092;"n\"){
  107. $zapytanie .=&#092;" = '$cdata'\";
  108. echo &#092;"<td><I>$cdata</I></td>\";
  109.  }  
  110. }
  111.  
  112. // Koniec funkcji przetwarzających dane.
  113.  
  114. // Utworzenie analizatora i ustawienie funkcji obsługujących dane.
  115.  
  116. $p = xml_parser_create();
  117. xml_set_element_handler ($p, 'handle_open_element', 'handle_close_element');
  118. xml_set_character_data_handler ($p, 'handle_character_data');
  119.  
  120. // Czytanie pliku.
  121. $file='XML/plik'.$student_id.'.xml';
  122. $fp = @fopen ($file, 'r') or die (&#092;"Nie można otworzyć pliku: $file\");
  123. while ($data = fread ($fp, filesize($file))) {
  124. xml_parse ($p, $data, feof($fp));
  125. }
  126.  
  127. // Zwolnienie zasobów analizatora.
  128. xml_parser_free($p);
  129. echo &#092;"</table>\";
  130.  
  131. ?>
Go to the top of the page
+Quote Post
akubiczek
post 19.07.2004, 11:00:01
Post #4





Grupa: Zarejestrowani
Postów: 189
Pomógł: 0
Dołączył: 4.07.2004
Skąd: z neostrady

Ostrzeżenie: (0%)
-----


Rozgryzłeś juz problem? biggrin.gif

Bo pewnie dla tego nie działa, że ten skrypt jest troszkę bez sensu winksmiley.jpg Przypatrz się:

  1. <?php
  2.  
  3. $zapytanie .=&#092;"Imie = '$imie', \";
  4. $zapytanie .=&#092;"Nazwisko = '$nazwisko', \";
  5. $zapytanie .=&#092;"Nr_indexu = '$nr_inde', \";
  6. $zapytanie .=&#092;"Rok_studiow = '$rok_stu', \";
  7. $zapytanie .=&#092;"Email = '$email', \";
  8. $zapytanie .=&#092;"Login = '$login', \";
  9. $zapytanie .=&#092;"Haslo= '$haslo'\";
  10.  
  11. ?>


a teraz powiedz gdzie ustawiasz te zmienne?


--------------------
pozdrawiam, Adam Kubiczek
kubiczek.eu
Go to the top of the page
+Quote Post
huka
post 20.07.2004, 22:57:16
Post #5





Grupa: Zarejestrowani
Postów: 96
Pomógł: 0
Dołączył: 10.03.2004
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


No własnie nie wiem jak to zmienić.

Do wyświetlenia danych na stronie skrypt działa poprawnie ale żeby wstawić do bazy to już nie bardzo.

Jak masz propozycje co należy dopisać lub pozmieniać to napisz bo przyznam szczerze że nie bardzo wiem co należy wykonać aby wszystko było ok.
Go to the top of the page
+Quote Post
rolling_stone
post 20.08.2004, 20:25:57
Post #6





Grupa: Zarejestrowani
Postów: 46
Pomógł: 2
Dołączył: 20.08.2004
Skąd: Warszawa Grochów

Ostrzeżenie: (0%)
-----


Nie znam się tak dobrze na SQL-u, ale wiem, że numer z SET-em przechodzi tylko w przypadku polecenia UPDATE.

Spróbuj tak:

  1. <?php
  2. $zapytanie = &#092;"INSERT INTO Studenci(`id_studenta`,`Imie`,`Nazwisko`,`Nr_indexu`,`Rok_studiow`,`Email`,`Login`,`
    H
  3. slo`) VALUES ('$student_id','$imie','$nazwisko','$rok_inde','$rok_stu','$email','$login','$haslo')\";
  4. ?>



Jeśli jakąś zmienną przeinaczyłem, to przepraszam.


--------------------
Zaprzyjaźniam się z Magento - www.heliantus.com.pl
Go to the top of the page
+Quote Post
akubiczek
post 20.08.2004, 20:29:59
Post #7





Grupa: Zarejestrowani
Postów: 189
Pomógł: 0
Dołączył: 4.07.2004
Skąd: z neostrady

Ostrzeżenie: (0%)
-----


Cytat(rolling_stone @ 2004-08-20 21:25:57)
Nie znam się tak dobrze na SQL-u, ale wiem, że numer z SET-em przechodzi tylko w przypadku polecenia UPDATE.

Nieprawda

Kod
INSERT [LOW_PRIORITY | DELAYED] [IGNORE]
    [INTO] tbl_name
    SET col_name={expression | DEFAULT}, ...
    [ ON DUPLICATE KEY UPDATE col_name=expression, ... ]


--------------------
pozdrawiam, Adam Kubiczek
kubiczek.eu
Go to the top of the page
+Quote Post
rolling_stone
post 20.08.2004, 21:29:08
Post #8





Grupa: Zarejestrowani
Postów: 46
Pomógł: 2
Dołączył: 20.08.2004
Skąd: Warszawa Grochów

Ostrzeżenie: (0%)
-----


w porządku, mój błąd, ale zastrzegłem, że się niezbyt dobrze znam na SQL-u. sorry


--------------------
Zaprzyjaźniam się z Magento - www.heliantus.com.pl
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 06:18