Imam jedan niz (koji sam napunio iz mysql baze) i 10ak tabela u kojima je PO oko 3.000 do 10.000 rekorda (ukupno recimo 50.000)
Potrebno mi je da prodjem sa while petljom kroz sve te tabele i da provjerim sve rekorde (za 1 kolonu). Ako se to polje nalazi u gore pomenutom nizu, potrebno je izvrsiti UPDATE tog reda.
I to tako sto ce ga zamjenit za vrijednost iz ovog niza (kljuc je to polje iz tog reda).
E sad sam uspio izpisat sve te query-je u HTML, ali kad stavim da se izvrsavaju to traje vjecnost (tacnije pustio sam 15-ak min da radi ali nije zavrsio). Probao sam sa mysql_free_result() ali isto (vidjecete dole na kraju kod-a je zakomentirano)
Postavicu ovde kod, pa bi molio za bilo kakvu pomoc?
napomena:
imamo 2 niza $old_kemids_rev i $old_kemids (isti su samo je uradjen array_flip() )
$pr = mysql_query("SHOW TABLES from baza LIKE '30a_%'") or die(mysql_error());
while($iz = mysql_fetch_array($pr)){
$tbl = $iz[0];
$suff = str_replace('30a','',$tbl);
if($tbl != '30a_sest'){
//--------------------------------------------------------------------------------------------------------
// prikazemo kolone
$pr1 = mysql_query("show columns from $tbl");
// uzmemo drugu kolonu (prva je kljuc)
$col_name = mysql_result($pr1,1);
// provjerimo jel $col_name kljuc, ako jeste uzmemo neku drugu
if($col_name == 'kemid'){
$col_name = mysql_result($pr1,0);
}
// uzmem red koji ispitujemo (koje treba update-ovat)
$pr2 = mysql_query("select kemid FROM $tbl");
while($iz2 = mysql_fetch_array($pr2)){
$kemid = $iz2[0];
// provjerimo da li postoji u nizu to polje:
if(@in_array($kemid,$old_kemids) ){
// uzimamo vrijednost za to polje:
$ekvivalent = $old_kemids_rev[$kemid];
// uzmemo vrijednost gore pomenute kolone za taj red
$pr3 = mysql_query("SELECT $col_name from 30$suff where kemid = $kemid");
$iz3 = mysql_fetch_array($pr3);
$value_from_30 = $iz3[0];
// zamjenimo sa vrijednosti iz niza:
if($value_from_30){
$q = "UPDATE $tbl SET kemid = '".$ekvivalent."'
WHERE kemid = '$kemid'
AND $col_name = \"$value_from_30\"";
}
// echo "<p>$q</p>";
mysql_query($q) or die('Greska u '.$tbl.': '.mysql_error());
// mysql_free_result($pr3);
}
}
//-----------------------------------------------------------------------------------------------------------
}
}
/* End of replacing 'kemids' */
[Ovu poruku je menjao vatri dana 22.10.2009. u 09:48 GMT+1]