Ho una tabella costituita da 5 campi (id-nome-data_in-data_out-conta).
Il campo conta contiene il risultato di giorni che sono passati da una data fissa alla data_in.
Adesso nel database ho inserito un certo numero di record.
Tramite una pagina php ho creato una query con una condizione,
cioè seleziona tutti i record che hanno la data_in > della data fissa.
Adesso una volta selezionati tutti i record con la condizione mi deve ricalcolare e
aggiornare i giorni che sono passati da un'altra data fissa alla data_in.
Codice PHP:
$no=("01-01-2007");
$data_xma = $data_in;
mysql_select_db($database_db, $db);
$query_Recordset2 = "SELECT * FROM in WHERE data_in >= '$no'";
$Recordset2 = mysql_query($query_Recordset2, $db) or die(mysql_error());
$row_Recordset2 = mysql_fetch_assoc($Recordset2);
$totalRows_Recordset2 = mysql_num_rows($Recordset2);
function contaxx($data_xma, $no) {
$a = explode('-', $data_xma);
$da = explode('-', $no);
$bisesto = 0;
$n_anni = ($a[2] - $da[2]);
for($i = $da[2]; $i <= $a[2]; $i++) {
if ($i % 4 == 0) $bisesto++;
}
if($da[1] > 2 AND $da[2] % 4 == 0) $bisesto--;
if($a[1] < 2 AND $a[2] % 4 == 0) $bisesto--;
$n_giorni = $n_anni * 365 + $bisesto;
$giorni_da =date('z', mktime(0,0,0, $da[1], $da[0], 1970));
$giorni_a =date('z', mktime(0,0,0, $a[1], $a[0], 1970));
return $tot = $n_giorni - $giorni_da + $giorni_a;
}
contaxx($data_xma, $no);
$conta_fina=contaxx($data_xma, $no);
do{
mysql_select_db($database_db, $db);
$query_T = "update inset conta = '$conta_fina' WHERE data_in >= '$no'";
$T = mysql_query($query_T, $db) or die(mysql_error());
} while ($row_Recordset2 = mysql_fetch_assoc($Recordset2));
Questo che ho fatto funziona, però mi fa il calcolo solo per il primo record e il risultato me
lo aggiorna su tutti i rimanenti record,di conseguenza mi trovo il campo conta uguale
x tutti i record.Invece io dovrei far in modo che per ogni record mi fa il calcolo e lo aggiorna