kopiranje tabele iz mysql z php
 
rstergar 31. jan 2013 18:34:51 Pridružen od:
3. apr 2011
72 objav
66 116 1
#1

pozdravljeni,



mogoče komu prov pride. nampreč sledeča koda deluje za kopiranje celotne mysql baze z enim klikom.

http://bkb.si/copyDB.html



ampak mene zanima če bi kdo znal popravit da ne kopira celotne baze ampak samo določeno tabelo iz baze katero bi vpisal nekam v skripto...?



hvala, lp


všeč(1) ni všeč(0) spam(0)
 
schtr4jh 31. jan 2013 20:01:51 Pridružen od:
24. nov 2008
402 objav
322 33 4
#2

Namesto


function copyAll() {

zapiši


function copyAll($table = NULL) {

Malo nižje zamenjaj


$result = mysql_query("SHOW TABLES", $resource);

z


$result = mysql_query("SHOW TABLES" . (!is_null($table) ? " LIKE '" . mysql_real_escape_string($table) . "'"), $resource);

Potem lahko kličeš $copier->copyAll(), ki skopira vse tabele, ali pa $copier->copyAll("tabela"), ki skopira specifično tabelo.


všeč(10) ni všeč(0) spam(0)
 
rstergar 31. jan 2013 21:10:48 Pridružen od:
3. apr 2011
72 objav
66 116 1
#3

super

mogoče veš kje popraviti ker napiše:

Parse error: syntax error, unexpected ')' in /home/rstergar/idol.si/test/copyclass.php on line 120



sem probal tudi brez () pa napise:

Parse error: syntax error, unexpected ',' in /home/rstergar/idol.si/test/copyclass.php on line 120



hvala


všeč(0) ni všeč(0) spam(0)
 
schtr4jh 31. jan 2013 23:11:57 Pridružen od:
24. nov 2008
402 objav
322 33 4
#4

Ah ja ...


$result = mysql_query("SHOW TABLES" . (!is_null($table) ? " LIKE '" . mysql_real_escape_string($table) . "'"), $resource);

zamenjaj z


$result = mysql_query("SHOW TABLES" . (!is_null($table) ? " LIKE '" . mysql_real_escape_string($table) . "'" : NULL), $resource);
všeč(1) ni všeč(0) spam(0)
 
rstergar 1. feb 2013 07:41:34 Pridružen od:
3. apr 2011
72 objav
66 116 1
#5

deluje! hvala ;)


všeč(0) ni všeč(0) spam(0)
 
rstergar 2. feb 2013 19:05:58 Pridružen od:
3. apr 2011
72 objav
66 116 1
#6

še eno vprašanje...

mogoče veš kako bi tole uporabil:



SELECT * FROM baza left outer join baza2 ON baza.id=baza2.id where baza2.id IS NULL

to sicer deluje...ampak samo tukaj: http://www.sqlfiddle.com/#!2/9a33d/20

zdej pa nevem kak bi js to uporabo v php-u?



tukaj so dve baze z enko tabelo in bi rad da preveri obe tabeli in izpiše kaj v drugi tabeli manjka in bi potem to dodal v drugo tabelo (celotno manjkajočo vrsto)...



če se da to v php ali kako bi bilo najlažje?



hvala! lp


všeč(0) ni všeč(0) spam(0)
 
rstergar 2. feb 2013 21:39:07 Pridružen od:
3. apr 2011
72 objav
66 116 1
#7

ok sm skuzo... sam mi noce delat...

v sql datoteko dam tole in jo zazenem z php (isto kot da bi kodo prilepil v phpmyadmin):

INSERT INTO rstergartest2.testiramte SELECT * FROM rstergartest.testiramte left outer join rstergartest2.testiramte ON rstergartest.testiramte.prvi=rstergartest2.testiramte.prvi where rstergartest2.testiramte.prvi IS NULL

vendar pokaze napako: #1136 - Column count doesn't match value count at row 1



ampak samo tole:

SELECT * FROM rstergartest.testiramte left outer join rstergartest2.testiramte ON rstergartest.testiramte.prvi=rstergartest2.testiramte.prvi where rstergartest2.testiramte.prvi IS NULL

pa deluje super!?



mogoce kdo ve kako to sestavit da bo ob enem izvozlo in uvozlo podatke?

hvala


všeč(0) ni všeč(0) spam(0)
 
schtr4jh 3. feb 2013 00:21:52 Pridružen od:
24. nov 2008
402 objav
322 33 4
#8

MySQL napaka #1136 - Column count doesn't match value count at row 1 ti pove, da število polj, ki jih želiš vstavit v tabelo, ne ustreza številom polj v tabeli. V tvojem primeru s select stavkom iz tabele rstergartest.testiramte izbereš x polj, v rstergartest2.testiramte je pa y polj. Zadevo lahko popraviš tako, da navedeš polja v insert stavku (INSERT INTO rstergartest2.testiramte (id, polje1, polje2, ...) ...) ali pa v select stavku (INSERT INTO ... SELECT id, polje1, polje2, ... FROM ...). Oziroma še bolje, polja navedeš v obeh stavkih. ;-)


všeč(0) ni všeč(0) spam(0)
 
rstergar 3. feb 2013 12:00:27 Pridružen od:
3. apr 2011
72 objav
66 116 1
#9

evo mi je ratalo.. ampak mogoce ves ce se da to izvrsit z php kajti to mi ne deluje:

$con = mysqlconnect("localhost", "uname", "pass") or die(mysqlerror());

mysqlselectdb("rstergarotroskesobe") or die(mysqlerror());

mysqlquery("INSERT INTO `rstergarotroskesobe.SCproductsSELECTrstergardom.SCproducts.productID,rstergardom.SCproducts.categoryID,rstergardom.SCproducts.customersrating,rstergardom.SCproducts.id1cFROMrstergardom.SCproductsleft outer joinrstergarotroskesobe.SCproductsONrstergardom.SCproducts.productID=rstergarotroskesobe.SCproducts.productIDwhererstergarotroskesobe.SCproducts.productID` IS NULL");

Print "done";

mysql
close($con);



deluje pa v phpmyadminu ce kodo prilepim v sql komando...


všeč(0) ni všeč(0) spam(0)
 
schtr4jh 3. feb 2013 14:20:45 Pridružen od:
24. nov 2008
402 objav
322 33 4
#10

Za 'mysqlquery(...)' dodaj 'or die(mysqlerrno() . " : " . mysql_error())' in potem debuggaj s pomočjo googla (kopiraš napako in v 99% imaš odgovor naveden med prvimi tremi rezultati). Nisem prepričan, kako točno PHP hendla zahteve med več bazami, očitno pa PhpMyAdminu to ne dela težav.


všeč(1) ni všeč(0) spam(0)
 
 

🔒 Za odgovor na to temo se moraš prijaviti.

Prijavi se