codice:
<?php
//FUNZIONE AGGIUNGI NUOVO RECORD
function InsertData($data,$connect){
$wbs = substr($data->wbs,3);
$cons_eff = str_replace(',','.',str_replace('.','',$data->cons_eff));
$pianificato = str_replace(',','.',str_replace('.','',$data->pianificato));
$budget = str_replace(',','.',str_replace('.','',$data->budget));
$eff_tot = str_replace(',','.',str_replace('.','',$data->eff_tot));
$residuo_oda = str_replace(',','.',str_replace('.','',$data->residuo_oda));
$disposto = str_replace(',','.',str_replace('.','',$data->disposto));
$disponibile = str_replace(',','.',str_replace('.','',$data->disponibile));
$npp = substr($data->wbs, 3,4);
// cerca id nnp
$query = "SELECT * FROM tb_npp WHERE codice ='".$npp."'";
$result = mysqli_query($connect, $query);
if ($result === false) {
echo "ERRORE CONNESSIONE DATABASE: " . mysqli_error($connect);
}
if (mysqli_num_rows($result)>0){
//NPP TROVATA
while($row = $result->fetch_assoc()) {
$id_npp= $row["id"];
}
$sql="INSERT INTO tb_pianifica (wbs,cons_eff,pianificato,budget,eff_tot,residuo_oda,disposto,disponibile,id_npp,id_status,id_statistic,id_blocco,id_update) VALUES ('".$wbs."','" .$cons_eff. "','" .$pianificato. "','" .$budget."','".$eff_tot."','".$residuo_oda."','".$disposto."','".$disponibile."','".$id_npp."','1','1','1','0')";
return $sql;
}
else {
//NPP NON TROVATA
echo "<span>Npp : <span><b>( ".$npp." )</b> non trovata<br>";
}
};
//FUNZIONE AGGIORNA RECORD
function UpdateData($data,$connect){
$wbs = substr($data->wbs,3);
$cons_eff = str_replace(',','.',str_replace('.','',$data->cons_eff));
$pianificato = str_replace(',','.',str_replace('.','',$data->pianificato));
$budget = str_replace(',','.',str_replace('.','',$data->budget));
$eff_tot = str_replace(',','.',str_replace('.','',$data->eff_tot));
$residuo_oda = str_replace(',','.',str_replace('.','',$data->residuo_oda));
$disposto = str_replace(',','.',str_replace('.','',$data->disposto));
$disponibile = str_replace(',','.',str_replace('.','',$data->disponibile));
$npp = substr($data->wbs, 3,4);
// cerca id nnp
$query = "SELECT * FROM tb_npp WHERE codice ='".$npp."'";
$result = mysqli_query($connect, $query);
if ($result === false) {
echo "ERRORE CONNESSIONE DATABASE: " . mysqli_error($connect);
}
if (mysqli_num_rows($result)>0){
//NPP TROVATA
while($row = $result->fetch_assoc()) {
$id_npp= $row["id"];
}
$sql = "UPDATE tb_pianifica SET cons_eff='".$cons_eff."', pianificato='".$pianificato. "', budget='".$budget. "',eff_tot='".$eff_tot. "',residuo_oda='".$residuo_oda. "',disposto='".$disposto. "',disponibile='".$disponibile. "',id_npp='".$id_npp. "' WHERE wbs='".$wbs."'";
return $sql;
}
else {
//NPP NON TROVATA
echo "<span>Npp : <span><b>( ".$npp." )</b> non trovata<br>";
}
};
include "db_connect.php";
//APRO LA CONNESSIONE AL DB
$connect = OpenCon();
//leggo i dati arrivati
$data= $_POST["pTableData"];
//DATI PER TEST
//$data= '[null,null,null,null,null,{"wbs":"WBS0017-FPR-PP-C001","cons_eff":"0,00","pianificato":"429,64","budget":"0,00","eff_tot":"2.746,16","residuo_oda":"0,00","disposto":"2.746,16","disponibile":"-2.746,16"},null,null,{"wbs":"WBS0017-S01-PR-PM","cons_eff":"0,00","pianificato":"1.106,96","budget":"1.122,79","eff_tot":"1.106,96","residuo_oda":"0,00","disposto":"1.106,96","disponibile":"15,83"},{"wbs":"WBS0017-S01-PR-E01","cons_eff":"0,00","pianificato":"5.243,71","budget":"5.360.248,26","eff_tot":"5.243,71","residuo_oda":"0,00","disposto":"5.243,71","disponibile":"4,55"}]'
//CONVERTO in JSON
$data = json_decode($data);
//ELIMINO I RECORD NULLI
$data = array_filter($data);
//azzero le variabili
$CountUpdata=0;
$CountIndata=0;
$ErrUpdateData=0;
$ErrInsertData=0;
//ciclo array
foreach($data as $value ){
//echo $value->wbs."<br>";
if(substr($value->wbs, 0,3)=="WBS"){// && strlen($value->wbs)>16
$query = "SELECT * FROM tb_pianifica WHERE wbs ='".substr($value->wbs,3)."'";
$result = mysqli_query($connect, $query);
if ($result === false) {
echo "ERRORE CONNESSIONE DATABASE: " . mysqli_error($connect);
}
else {
if (mysqli_num_rows($result)>0)
{ //AGGIORNA RECORD ESISTENTE
$sql="";
$sql=UpdateData($value,$connect);
//Controllo se andata a buon fine aggiornamento
if ($sql!=""){
if($connect->query($sql) == TRUE)
{
$CountUpdata=$CountUpdata+1;
}
else
{
$ErrUpdateData=$ErrUpdateData+1;
}
}
else
{
$ErrUpdateData=$ErrUpdateData+1;
}
}
else
{ //INSERISCI NUOVO RECORD
$sql="";
$sql=InsertData($value,$connect);
//Controllo se andata a buon fine inserimento
if ($sql!=""){
if($connect->query($sql) === TRUE)
{
$CountIndata=$CountIndata+1;
}
else
{
$ErrInsertData=$ErrInsertData+1;
}
}
else
{
$ErrInsertData=$ErrInsertData+1;
}
}
}
}
}
echo "<span>Aggiornati : <span><b>".$CountUpdata."</b><br>";
echo "<span>Nuovi Inseriti : <span><b>".$CountIndata."</b><br>";
echo "<span>Errore Aggiornamento : <span><b>".$ErrUpdateData."</b><br>";
echo "<span>Errore Inserimento : <span><b>".$ErrInsertData."</b>";
?>