[php][mysql] x aantal txt bestanden invoegen

Pagina: 1
Acties:

  • TF
  • Registratie: Juni 2001
  • Laatst online: 14:01

TF

 bla bla

Topicstarter
Ik weet dat ik al eens een soortgelijke vraag gesteld heb..maar ik kom er nog steeds niet echt uit... 1 txt bestand lukt wel..alleen meerdere uit 1 directory bijvoorbeeld niet...

alle text bestanden hebben een andere naam die op geen enkele manier aan elkar te relateren zijn ...dus ik kan niet optellen...1.txt 2.txt 3.txt ze heten gewoon piet.txt klaas.txt blaat.txt etc etc.

elk bestandje bevat 4 variabelen
Naam
Achternaam
Adres
Telnummer

Nu wil ik graag al die TXt bestandjes in 1x (!)in me DB plaatsen..ik weet dat dit kan dmv van php ..en ik heb al php.net etc erop nagelsagen ....maar weet nog steeds niet echt waar ik moet beginnen ... of anders Tool waarmee dit kan ala PhpMyAdmin oid...

want 1 voor 1 duurt zo ontzettend lang...

  • Markuzi
  • Registratie: November 2000
  • Laatst online: 25-02-2025
Je kunt alle bestandsnamen in een array zetten... en dan door het array lopen waarbij je alle bestandjes opent. Wat makkelijk zou zijn is dat elk bestandje bijvoorbeeld de volgende vorm krijgt: naam##achternaam##adres##telnummer

Je kunt die regel dan explode()-en op de ## waardoor je weer een array krijgt die je dan vervolgens in de db kunt zetten.

Het is maar een aanzetje maar zo moet je wat verder komen.

  • TF
  • Registratie: Juni 2001
  • Laatst online: 14:01

TF

 bla bla

Topicstarter
ja ok ...prima oplossing.. maar dat betkend dat ik een heeeleboel bestandsnamen in een array moet gaan zetten ...

kijk .. het moet een snellere oplossing worden dan alle TXT 1 voor 1 te doen ...

mmm ... ACM? het brein? enig idee?

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Open met de directory en filefuncties alle .txt files (loop alle files in die dir langs en check of het een .txt is)

Op die manier alles 1-voor-1 doorlopen zal wel meevallen.

  • Explore
  • Registratie: Maart 2001
  • Laatst online: 08-04-2011

Explore

Op zoek naar werk

Eh, zoiets:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?
function list_dir($dirname) { 
    if($dirname[strlen($dirname)-1]!='\\') $dirname.='\\'; 
    static $result_array=array(); 
    $handle=opendir($dirname); 
    while ($file = readdir($handle)) { 
        if($file=='.'||$file=='..') continue; 
        if(is_dir($dirname.$file)) list_dir($dirname.$file.'\\'); 
        else {
            if (eregi(".txt",$dirname.$file))
                $result_array[]=$dirname.$file; 
        }
    } 
    closedir($handle); 
    return $result_array; 
}

$db = mysql_connect("localhost", "user", "pass");
mysql_select_db("database",$db);

$dir = list_dir('.');
foreach ($dir as $file) {
    echo "Dumping data in $file... ";
    $fd = fopen($file,"r");
    while (!feof ($fd)) {
        $buf = fgets($fd,4096);
        
        // split $buf in vars: Naam, Achternaam, Adres, Telnummer
        // dump vars in db mbv. mysq_query
        
    }
    fclose($fd);
}

echo "<p>Done...<br>\n";
?>

Een stuk van die code had ik al liggen om het aantal regels van een zooi code te tellen. Dat splitten en toevoegen aan de db mag je zelf uitzoeken. :)

[ specs ] [ Tweaker gallery ]


  • TF
  • Registratie: Juni 2001
  • Laatst online: 14:01

TF

 bla bla

Topicstarter
precies...

dus een directory langslopen ...en dan opsplitsen ...

maar dan is het dus ook nog zo...dat de tekstfiles zonder een 'end' zijn opgebouwd...ze zien er zeg maar zo uit:

piet
klaasen
baalt 1
0123495060

en als je dan een text file in de DB wil laden ..dan moet elke var afgesloten worden door bijvoorbeeld een ;

piet;
klaasen;
baalt 1;
0123495060;

damn man ... het is een verscrikking..keep on proberen

  • Explore
  • Registratie: Maart 2001
  • Laatst online: 08-04-2011

Explore

Op zoek naar werk

Op maandag 24 september 2001 15:31 schreef TF het volgende:
precies...

dus een directory langslopen ...en dan opsplitsen ...

maar dan is het dus ook nog zo...dat de tekstfiles zonder een 'end' zijn opgebouwd...ze zien er zeg maar zo uit:

piet
klaasen
baalt 1
0123495060

...
Oh, dat is de tekstfile, dus gewoon 1 record in 1 file?

Dan lees je heel de hap in 1x in met fgets en een buffer die groot genoeg is om die zaak in te lezen en dan variabelen splitten op de newline char (\n).

Mis ik (weeral) wat?

[ specs ] [ Tweaker gallery ]


  • TF
  • Registratie: Juni 2001
  • Laatst online: 14:01

TF

 bla bla

Topicstarter
de variabelene die ik nam waren voorbeelden ...

de eerste 3 kloppen .. maar de laatste is eigenlijk
probleem_omschrijfing

hierin komt het probleem te staan van een pers. lid.

dus die zal...zeker meerdere regels gaan bevatten ..
Pagina: 1