Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL]Jak wyeksportować 100 tabel do 100 różnych plików, Czyl jedna tabela jeden plik
czajna
post
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 6.09.2006

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


Witajcie,

szukam sposobu aby wyeksportować wiele tabel z mojej bazy, tak aby każda tabela znalazła się w osobny pliku (potrzbuje to aby dokonać migracji mojej Joomli). Oczywiście mogę eksportować każdą tabelę po kolei za pomocą PhpMyAdmina ale będzie to czasochłonne, czy znacie jakieś sprytniejsze sposoby?

T
Go to the top of the page
+Quote Post
2 Stron V   1 2 >  
Start new topic
Odpowiedzi (1 - 19)
WebSee
post
Post #2





Grupa: Zarejestrowani
Postów: 50
Pomógł: 3
Dołączył: 6.12.2009

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


A nie możesz po prostu wyeksportować wszystkich tabel do jednego pliku?
Go to the top of the page
+Quote Post
lobopol
post
Post #3





Grupa: Zarejestrowani
Postów: 1 729
Pomógł: 346
Dołączył: 4.04.2009

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


Eksport wszystkich tablic to jednego pliku, a następnie podzielić zawartość tego pliku explodem i w pętli tworzyć pliki zawierające poszczególne elementy utworzonej tablicy.

Ten post edytował lobopol 27.04.2010, 19:06:52


--------------------
Go to the top of the page
+Quote Post
czajna
post
Post #4





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 6.09.2006

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


Niestety nie może być to jeden plik.

Cytat
Eksport wszystkich tablic to jednego pliku, a następnie podzielić zawartość tego pliku explodem i w pętli tworzyć pliki zawierające poszczególne elementy utworzonej tablicy.


Sorry za ignorancję, ale że to dział dla początkujących pozwolę sobie...czy możesz trochę szerzej objaśnić?
Go to the top of the page
+Quote Post
lobopol
post
Post #5





Grupa: Zarejestrowani
Postów: 1 729
Pomógł: 346
Dołączył: 4.04.2009

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


No cóż tu napisać więcej eksportujesz sobie wszystkie tabele do jednego pliku za pomocą phpmyadmina, następnie otwierasz sobie plik np funkcją fopen, masz długaśnego stringa którego dzielisz explodem i i tworzysz sobie nowe pliki w pętli do każdego pliku zapisujesz kolejny fragment tablicy uzyskanej z explode-a.


--------------------
Go to the top of the page
+Quote Post
czajna
post
Post #6





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 6.09.2006

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


Dzięki za pomoc, chyba jestem jednak zbyt zielony na taką 'operacje'. Miałem nadzieję że nie zauważyłem jakiejś funkcji w phpmyadminie
Go to the top of the page
+Quote Post
gothye
post
Post #7





Grupa: Zarejestrowani
Postów: 702
Pomógł: 65
Dołączył: 16.03.2009

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


A Ja to widzę tak winksmiley.jpg

  1. $result = mysql_list_tables('twojabaza');
  2. while (($row = mysql_fetch_row($result)))
  3. $tabele[] = $row[0];
  4.  
  5.  
  6. foreach($tables as $key => $table)
  7. {
  8. $query = mysql_query ("SELECT * FROM $table ");
  9.  
  10. while($tmp = @mysql_fetch_assoc($query))
  11. $sql_table[] = $tmp ;
  12.  
  13.  
  14. if($sql_table)
  15. {
  16. fputs($SQLfile,"------------------------------------------\n");
  17. fputs($SQLfile,"--- Copy of tabele : $table \n");
  18. fputs($SQLfile,"------------------------------------------\n\n");
  19.  
  20. fputs($SQLfile,"DELETE FROM $table;\n");
  21.  
  22. foreach($sql_table as $keys => $row)
  23. {
  24. fputs($SQLfile,"INSERT INTO $table (");
  25. foreach($row as $field => $value)
  26. {
  27. $fields[] = $field;
  28. if(isset($value))
  29. $values[] = "'".addcslashes($value,"\r\n\'\"\\")."'";
  30. else
  31. $values[] = 'NULL';
  32. }
  33. fputs($SQLfile,implode(', ',$fields));
  34. fputs($SQLfile,') VALUES (');
  35. fputs($SQLfile,implode(', ',$values));
  36. fputs($SQLfile,");\n");
  37. unset($fields);
  38. unset($values);
  39. }
  40.  
  41. fclose($SQLfile);
  42. }
  43. }


--------------------
Nie udzielam pomocy poprzez PW
Go to the top of the page
+Quote Post
czajna
post
Post #8





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 6.09.2006

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


Hm...i puszczam ten kod w okienku zapytania SQL?
Go to the top of the page
+Quote Post
nospor
post
Post #9





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Nie. To jest skrypt PHP


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
czajna
post
Post #10





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 6.09.2006

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


A co w tym skrypcie należałoby zmienić żeby eksportowało tabele w trybie zgodności MYSQL 40?
Go to the top of the page
+Quote Post
nospor
post
Post #11





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
trybie zgodności MYSQL 40
poczekac kilkadziesiąt lat winksmiley.jpg

jesli zas miales na mysli mysql 4.0 to raczej nic nie trzeba zmieniac. Skrypt jest tak prosty ze nie korzysta ze specjalnych rzeczy niedostepnych dla mysql 4.0


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
czajna
post
Post #12





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 6.09.2006

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


Hm...w PhpMyAdminie jest opcja 'Tryb zgodności SQL' i żeby poprawnie wykonać migracje wiem że właśnie w tym 'trybie' mam eksportować, czyli mam rozumie że Twój skrypt będzie ok?

T
Go to the top of the page
+Quote Post
nospor
post
Post #13





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




To nie mój skrypt - ja tylko odpowiadam na Twoje pytania.

Z tego co widzę, skrypt ten nie generuje zadnych dziwnych zapytan, wiec pójdzie i na mysql4. Włącznie z zapytaniami, które tworzy w pliku.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
czajna
post
Post #14





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 6.09.2006

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


Ok, czyli skrypt zapisałem jako php, dodałem znaczniki php na początku i końcu, wrzuciłem na serwer odpaliłem za pomocą przeglądarki i...

Kod
Warning: mysql_list_tables() [function.mysql-list-tables]: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) in /homez.106/narowerz/www/migrate.php on line 4

Warning: mysql_list_tables() [function.mysql-list-tables]: A link to the server could not be established in /homez.106/narowerz/www/migrate.php on line 4

Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /homez.106/narowerz/www/migrate.php on line 5

Warning: Invalid argument supplied for foreach() in /homez.106/narowerz/www/migrate.php on line 9


Czy coś powinienem uzupełnić oprócz nazwy bazy danych w skrypcie?
Go to the top of the page
+Quote Post
nospor
post
Post #15





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




a mysql_connect() dales?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
czajna
post
Post #16





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 6.09.2006

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


Teraz dodałem na początku:
Kod
<?php
$host='';
$user='';
$pass='';
$db='';
$link = mysql_connect("$host", "$user", "$pass") or die('Connection error : ' . mysql_error());
mysql_select_db("$db") or die('Could not select database');


i wyskakuje błąd:

Kod
Warning: Invalid argument supplied for foreach() in /homez.106/narowerz/www/migracja/migrate.php on line 18
Go to the top of the page
+Quote Post
nospor
post
Post #17





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




czy host i user i db u siebie tez masz puste? No przeciez tak nie mozna.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
czajna
post
Post #18





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 6.09.2006

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


Oczywiscie, ze nie. Wszystko jest uzupelnione.
Go to the top of the page
+Quote Post
nospor
post
Post #19





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




ok.

w skrypcie jest literowka:
nie:$tabele[] = $row[0];
a:$tables[] = $row[0];


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
czajna
post
Post #20





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 6.09.2006

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


Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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 Aktualny czas: 21.08.2025 - 04:03