Kod
Tabela: sl_grupatw
grt_id | grt_nazwa
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]