Supprimer lignes vides

Résolu
asmaa -  
 asmaa -
Salut!
j'importe un fichier excel dans une base sql via une routine php, cependant quand le fichier a une ligne vide en fin de fichier, j'ai une ligne vide dans ma base. Comment je peux procéder pour supprimer les lignes vides?
voila mon code php
//ajouter excel

   if(isset($_FILES['doc'])){
      $errors= array();
      $file_name =mssql_escape_string($_FILES['doc']['name']);
      $file_size =mssql_escape_string($_FILES['doc']['size']);
      $file_tmp  =mssql_escape_string($_FILES['doc']['tmp_name']);
      $file_type =mssql_escape_string($_FILES['doc']['type']);
      $file_ext  =mssql_escape_string(strtolower(end(explode('.',$_FILES['doc']['name']))));
      
      $expensions= mssql_escape_string(array("xlsx"));
      
      if(in_array($file_ext,$expensions)=== false){
         $errors[]="extension not allowed, please choose a xlsx file.";
      }
      
      if($file_size > 2097152){
         $errors[]='File size must be excately 2 MB';
      }
               move_uploaded_file($file_tmp,"doc/".$file_name);


      $file_tmp =$_FILES['doc']['tmp_name'];
set_include_path(get_include_path() . PATH_SEPARATOR . 'Classes/'); 
include 'PHPExcel/IOFactory.php';
// This is the file path to be uploaded.
$inputFileName = 'doc/'.$file_name; 

try {
    $objPHPExcel = PHPExcel_IOFactory::load($inputFileName);
} catch(Exception $e) {
    die('Error loading file "'.pathinfo($inputFileName,PATHINFO_BASENAME).'": '.$e->getMessage());
}

$allDataInSheet = $objPHPExcel->getActiveSheet()->toArray('',true,true,true);
$arrayCount = count($allDataInSheet);  // Here get total count of row in that Excel sheet


for($i=2;$i<=$arrayCount;$i++){
    
$titre_ouv   =mssql_escape_string(trim($allDataInSheet[$i]["A"]));
$auteur_ouv  =mssql_escape_string(trim($allDataInSheet[$i]["B"]));
$nbre_ouv    =mssql_escape_string(trim($allDataInSheet[$i]["C"]));
$source_ouv  =mssql_escape_string(trim($allDataInSheet[$i]["D"]));
$anneepub_ouv=mssql_escape_string(trim($allDataInSheet[$i]["F"]));
$id_cat      =mssql_escape_string(trim($allDataInSheet[$i]["G"]));


$insertTable= mysql_query("insert into ouvrages (titre_ouv,auteur_ouv,nbre_ouv,source_ouv,anneepub_ouv,id_cat) values('".$titre_ouv."', '".$auteur_ouv."' ,'".$nbre_ouv."','".$source_ouv."', '".$anneepub_ouv."','".$id_cat."');");

}}

Merci de vos réponses...

2 réponses

  1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    bonjour, moi je testerais si une des variables assignées dans les lignes 41 à 46 est non vide, avant de faire la ligne 49.
    0
  2. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
     
    Bonjour,

    Déjà.. tu mélanges plusieurs technos...
    mssql_escape_string
    et
    mysql_query

    Ce n'est pas normal.

    Ensuite, mysql est considéré comme OBSOLETE.
    Je t'invite vivement à passer à PDO ou mysqli
    Regarde ceci : https://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete#top

    Et pour finir... avant de faire ton insertion, il te suffit de faire un IF pour t'assurer que toutes les valeurs sont renseignées.
    Pour ça tu peux utiliser
    !empty

    Exemple
    if( !empty($titre_ouv) && !empty($auteur_ouv) && !empty($nbre_ouv)){
       $insertTable =  ....
    }
    
    0
    1. asmaa
       
      Merci ça marche
      je ne suis qu'une debutante, php c'est pas mon truc c'est juste un mini projet a faire pour l'ecole
      Sinon Merci beaucoup
      0