Supprimer lignes vides

Résolu/Fermé
asmaa - Modifié le 21 mai 2018 à 17:06
 asmaa - 21 mai 2018 à 17:23
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...
A voir également:

2 réponses

yg_be Messages postés 22729 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 477
21 mai 2018 à 17:06
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
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
21 mai 2018 à 17:06
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
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