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 23473 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 février 2025 Ambassadeur 1 568
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 38427 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 février 2025 4 735
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