Comunitatea PHP Romania
MightyDeals

Prima pagină PHP General PHP Incepători Citire fisier CSV

Citire fisier CSV

Secţiune dedicată începatorilor.

Mesaj Lun Iul 30, 2012 5:43 am
Horatiu PHPRomania Supporter

Mesaje: 16
Salut,

Folosesc urmatorul cod pentru citirea unui fisier csv:

<?php
$filename='emails.csv';

$fp=fopen($filename,'r' );//deschid fisierul pentru scriere; daca nu exista, va fi creat
//var_dump($fp);
if(!$fp){
   die("Fisierul nu poate fi deschis");
   }
   
while($line=fgetcsv($fp,',')){
   //print_r($line);
   echo "$line[0]";
   echo "<br />";
   echo "$line[1]";
   echo "<br /><br />";
   }

fclose($fp);
?>



Asta este varianta simpla care a functionat pana acum avand foarte putine informatii.

Acum vreau sa pot selecta informatiile din celule specifice ( Ex: [coloana 1, rand 8] etc. ). Informatiile din csv trebuie sa se duca in 3 tabele care sunt legate intre ele prin foreign keys.

Are cineva o idee ?

Mesaj Lun Iul 30, 2012 4:34 pm
Horatiu PHPRomania Supporter

Mesaje: 16
Am gasit solutia intr-un array bidimensional, insa in continuare am o nelamurire: cum sar peste primul rand .. pe care il consider a fi doar header ..

Mesaj Lun Iul 30, 2012 6:05 pm
badtiger Senior Member

Mesaje: 546

Salut,

Acela nu este un array bidimensional, este unul simplu (un array bidimensional este de forma $arr[][])

Poti folosi o variabila pe care o incrementezi in acel while

$i = 0;
while(.....)
{
if($i !=)
{
//iti faci treburile aici
}
else $i++;
}
Aplicare folii auto http://www.autofolii.ro
cele mai ieftine xenoane http://www.xenoane.ro
Nu mai fi chel http://www.caderea-parului.ro

Mesaj Mar Iul 31, 2012 8:12 am
Horatiu PHPRomania Supporter

Mesaje: 16
codul nu mai este cel de sus ci urmatorul:


<?php



$filename = "test.csv";
if (($handle = fopen($filename, 'r')) !== FALSE)

{
   
    while (($row = fgetcsv($handle, " ")) !== FALSE)
   
    {
          
     $dateVar = array('Destinatie' => $row[0], 'Localitate' => $row[1], 'Proprietar' => $row[2] , 'PromiseDate' => $row[3], 'Comenzi' => array($row[4], $row[5],$row[6],
     $row[7],$row[8],$row[9],$row[10],$row[11],$row[12],$row[13],$row[14],$row[15]));
 
  if($dateVar['Destinatie'] == 'Destinatie' || trim($dateVar['Destinatie']) == ''){
        
      continue;     
     
     }   

   // folosesc momentan echo, ulterior voi insera in baza de date.


   echo "destinatie:".$dateVar['Destinatie'];
   echo "<br />";
   echo "localitate:".$dateVar['Localitate'];
   echo "<br />";
   echo "Proprietar:".$dateVar['Proprietar'];
   echo "<br />";
   echo "Promise Date:".$dateVar['PromiseDate'];
   echo "<br />";
$str="Comenzi pentru destinatie ".$dateVar['Destinatie']." : ";
   
   foreach($dateVar['Comenzi'] as $val) {   
   
   $str.=$val.",";
   
}
 
   echo $str;
   echo "<br />";
   echo "<hr />";
     
    }
   
 }


?>




ce este drept mai merge putin slefuit dar functioneaza :) ..

Mesaj Dum Apr 14, 2013 12:55 am
Google Bot New Member

Mesaje: 1

Înapoi la PHP Incepători

Copyright © 2001-2013 PHP Romania Gazduire web | Haine online | Gazduire web | Campanii SMS | Gazduire Claus Web | Inregistrare Domenii | Anunturi | Jocuri cu bile
Furnizat de phpBB® Forum Software © phpBB Group
Translation/Traducere: phpBB România
Powered by Simplis