![]() |
![]() |
![]()
Post
#1
|
|
Administrator serwera Grupa: Developerzy Postów: 521 Pomógł: 13 Dołączył: 2.04.2004 Skąd: 52°24' N 16°56' E Ostrzeżenie: (0%) ![]() ![]() |
Kontynuacja mego problemu: dwie tabele pierwsza w ms sql server 2000 druga w mySQL nazwy tabeli sa takie same, nazwy kolumn rowniez. Struktura tabeli:
Kod Tabela: sl_grupatw
grt_id | grt_nazwa Chcialbym zaktualizowac tabele mySQL na podstawie tej z ms sql server 2000 w taki sposob: jesli nie istnieje to ja utworzyc, nastepnie sprawdzic czy w tabeli mySQL sa bledne rekordy o grt_id nie zawarte w tabeli ms sql server 2000 i jesli sa to je usuwac (zrobione), nastepnie jesli jest za malo rekordow w tabeli mySQL niz w ms sql server 2000 to dodac odpowiednie rekordy tak by bylo ich tyle samo i mialy takie same wartosci (kolejnosc jest nieistotna, wartosci grt_id oraz grt_nazwa z ms sql server 2000 mam zapisane w 2 tablicach) i ostatni krok po tym wszytkim zwrocic jeszcze raz wszystkie rekordy z mySQL i porownac pola grt_nazwa z mySQL z tymi z ms sql server i jezeli sie roznia to je zaktualizowac komenda update. Nie wiem jakiej funkcji uzyc aby sie dowiedziec ktore grt_id z ms sql server 2000 nie sa zawarte w tabeli mySQL. Ponizej zamieszczam kod pliku ktory robi wszystko do kroku drugiego: [php:1:e67a28a6a5]<?php set_time_limit(0); $hostms="localhost"; $hostmy="sklep"; $userms="sa"; $usermy="root"; $passms=""; $passmy="czarownik"; $tablems="sl_GrupaTw"; $tablemy="sl_grupatw"; $valuesms="grt_Id,grt_Nazwa"; $valuesmy="grt_id,grt_nazwa"; /* $connectmy=odbc_pconnect($hostmy, $usermy, $passmy); $querymy="CREATE TABLE $tablemy (grt_Id INT NOT NULL, grt_Nazwa VARCHAR(30) NOT NULL)"; $execmy=odbc_exec($connectmy, $querymy); */ $connectms=odbc_pconnect($hostms, $userms, $passms); $queryms1="SELECT COUNT(*) FROM $tablems"; $queryms2="SELECT $valuesms FROM $tablems"; $execms1=odbc_exec($connectms, $queryms1); $execms2=odbc_exec($connectms, $queryms2); $ms_licznik=odbc_result($execms1,1); $i1="0"; while(odbc_fetch_row($execms2)){ $id[$i1]=odbc_result($execms2,1); $nazwa[$i1]=odbc_result($execms2,2); $i1++; } $wart_tab_id="'$id[0]'"; for($l1=1;$l1<$ms_licznik;$l1++){ $wart_tab_id.=", '$id[$l1]'"; } $wart_tab_nazwa="'$nazwa[0]'"; for($l2=1;$l2<$ms_licznik;$l2++){ $wart_tab_nazwa.=", '$nazwa[$l2]'"; } $wart_ms_id=array($wart_tab_id); $wart_ms_nazwa=array($wart_tab_nazwa); echo("$wart_tab_id<br>$wart_tab_nazwa<br>"); $connectmy=odbc_pconnect($hostmy, $usermy, $passmy); $querymy1="SELECT COUNT(*) FROM $tablemy WHERE grt_id NOT BETWEEN '".$id[0]."' AND '".$ms_licznik."'"; $execmy1=odbc_exec($connectmy, $querymy1); $my_licznik_zlw=odbc_result($execmy1,1); $querymy2="SELECT COUNT(*) FROM $tablemy"; $execmy2=odbc_exec($connectmy, $querymy2); $my_licznik=odbc_result($execmy2,1); $reszta_licznika=$my_licznik-$my_licznik_zlw; if($my_licznik_zlw>0){ $querymy3="SELECT grt_id FROM $tablemy WHERE grt_id NOT BETWEEN '".$id[0]."' AND '".$ms_licznik."'"; $execmy3=odbc_exec($connectmy, $querymy3); while(odbc_fetch_row($execmy3)){ $my_grt_id_zle=odbc_result($execmy3,1); echo("$my_grt_id_zle<br>"); $querymy4="DELETE FROM $tablemy WHERE grt_id='".$my_grt_id_zle."'"; odbc_exec($connectmy, $querymy4);}} if($reszta_licznika<$ms_licznik){ } ?>[/php:1:e67a28a6a5] |
|
|
![]() ![]() |
![]() |
Aktualny czas: 25.08.2025 - 09:41 |