2016-10-17 26 views
2

即時通訊使用checkfile上傳文件通過月&年javascript - 將多個循環轉換爲一個警報

如果成功,它會將數據加載到數據庫。

IF checkfile = false 

我想顯示的警報消息("import Fail")

foreach ($files1 as &$value) { 

$checkfile = strpos($value,$input1); 

if($checkfile === false) { 
//echo "<script>alert('Import Fail ');</script>"; 
} 
else 
{ 
echo "Import $value successfully! <br>" ; 

    $query = "load data local infile '//192.168.100.3/Groups/$location1/Timesheet/$value' 
       replace 

     $result = $connection->query($query) or exit("Error code ({$connection->errno}): {$connection->error}"); 

} 

} 

unset($value); 

?> 

我試圖有回聲警報( '導入失敗');

但它給我多個警報文件夾中的每個文件。

+0

這是因爲它內部的foreach循環。它會給每個循環的錯誤 –

回答

2

方式1:用標誌管理流程如下。如果任何文件成功導入,則更改標誌,然後在標誌上作出條件以顯示警報。

$flag = 0; 
foreach ($files1 as &$value) { 

    $checkfile = strpos($value,$input1); 

    if($checkfile === false) { 
    //echo "<script>alert('Import Fail ');</script>"; 
    } 
    else 
    { 
    $flag = 1; 
    echo "Import $value successfully! <br>" ; 

    // $query1 = 
    // "Delete FROM hklcanet_pha.psr this 
    // WHERE year(psr.ReportDate) = $input3 
    // AND month(psr.ReportDate) = $input2"; 


    $query = "load data local infile '//192.168.100.3/Groups/$location1/Timesheet/$value' 
       replace 
       into table hklcanet_pha.psr fields terminated by ',' 
       optionally enclosed by '\"' 
       lines terminated by '\n' 
       ignore 1 lines 
       (`ReportDate`, @dummy, @dummy, `Team_refno`,`Name/Description`,`Status`,`PIC`,`RequestDate`,`TargetEndDate`,`ActualEndDate`,`PlanStartDate`,`ActualStartDate`,`PlanUATDate`,`ActualUATDate`,`PlanImplement`,`ActualImplement`)"; 

    //echo "Import $value successfully! <br>" ; 


     $result = $connection->query($query) or exit("Error code ({$connection->errno}): {$connection->error}"); 

    } 

} 
if($flag == 1){ 
    echo "<script>alert('Import Fail ');</script>"; 
} 
unset($value); 

?> 

方式2:獲得成功導入文件名的名字,並以它作爲條件。

$flag = []; 
foreach ($files1 as &$value) { 

    $checkfile = strpos($value,$input1); 

    if($checkfile === false) {  
    //echo "<script>alert('Import Fail ');</script>"; 
    } 
    else 
    { 
    //Store successful file names in array 
    $flag[] = $value; 

    echo "Import $value successfully! <br>" ; 

    // $query1 = 
    // "Delete FROM hklcanet_pha.psr this 
    // WHERE year(psr.ReportDate) = $input3 
    // AND month(psr.ReportDate) = $input2"; 


    $query = "load data local infile '//192.168.100.3/Groups/$location1/Timesheet/$value' 
       replace 
       into table hklcanet_pha.psr fields terminated by ',' 
       optionally enclosed by '\"' 
       lines terminated by '\n' 
       ignore 1 lines 
       (`ReportDate`, @dummy, @dummy, `Team_refno`,`Name/Description`,`Status`,`PIC`,`RequestDate`,`TargetEndDate`,`ActualEndDate`,`PlanStartDate`,`ActualStartDate`,`PlanUATDate`,`ActualUATDate`,`PlanImplement`,`ActualImplement`)"; 

    //echo "Import $value successfully! <br>" ; 


     $result = $connection->query($query) or exit("Error code ({$connection->errno}): {$connection->error}"); 

    } 

} 
if(sizeof($flag) == 0){ 
    //Display all the file names in alert 
    $failedFiles = implode(",",$flag); 
    echo "<script>alert('Import Failed for files : ".$failedFiles."');</script>"; 
} 
unset($value); 

?> 
+0

它的工作原理!但是當$ checkfile = true時,它仍然有警告消息「導入失敗」 – beginner123

+0

@ beginner123您是否嘗試過way2?我做了改變。如果數組大小大於0,則只會導入失敗消息。請檢查更新的答案。 –

+0

@ beginner123對於way1如果任何文件將失敗,那麼警報消息將導致導入失敗。 –