login  Naam:   Wachtwoord: 
Registreer je!
 Forum

[SQL] Data IMporteren

Offline raintjah - 07/09/2007 20:10 (laatste wijziging 07/09/2007 20:14)
Avatar van raintjahNieuw lid Hallo,

ik heb hier een tekst bestand dat vol staat met gegevens als volgt:
  1. 05/18/07 13532.96 13536.37 13523.45 13526.38 1 1515
  2. 05/18/07 13526.30 13541.25 13522.15 13535.48 1 1530
  3. 05/18/07 13535.16 13553.20 13534.75 13548.89 1 1545
  4. 05/18/07 13548.73 13557.34 13541.74 13555.47 1 1600
  5. 05/21/07 13556.04 13556.85 13535.81 13551.41 1 0945
  6. 05/21/07 13551.17 13556.20 13539.79 13546.61 1 1000
  7. 05/21/07 13547.02 13562.38 13546.70 13551.25 1 1015
  8. 05/21/07 13551.17 13552.30 13543.69 13546.29 1 1030
  9. 05/21/07 13546.21 13558.15 13544.50 13554.90 1 1045
  10. 05/21/07 13554.82 13570.59 13552.63 13566.85 1 1100
  11. 05/21/07 13567.17 13568.23 13559.86 13560.19 1 1115
  12. 05/21/07 13559.45 13561.24 13554.66 13559.45 1 1130
  13. 05/21/07 13559.37 13559.37 13548.89 13552.22 1 1145
  14. 05/21/07 13552.14 13566.52 13551.98 13563.19 1 1200
  15. 05/21/07 13563.36 13585.87 13559.94 13581.23 1 1215



Nu wil ik deze data, in dezelfde kolomen als in het tekstbestand, importeren in een database... Hoe kan ik dit realiseren?

Iemand tips?
Iemand vertelde me al dat ik hier een PHPscript voor kan maken, maar ik weet totààl niet hoe...

Citaat:
eerst functie http://be2.php.net/manual/en/function.file.php, kunt ge txt-file inladen en alle lijnen in een array steken.
dan loopt ge door die array (for luske) en gebruikt ge http://be2.php.net/manual/en/function.substr.php om elk veld eruit te halen (regels zijn altijd evenlang, dus is geen probleem).
en per lijn doet ge dan ne sql query naar den db en tis gefixt.


Nu, ik ben een leek eerste klas, dus...   

Kan iemand helpen?
Alvast bedankt!

EDIT:
Zelfde probleem hier: http://www.site...n_in_mysql

Zonder oplossing 

3 antwoorden

Gesponsorde links
Offline gothmog - 07/09/2007 20:22 (laatste wijziging 07/09/2007 20:42)
Avatar van gothmog Lid Eerst exploden op enters en dan op, tabs/spatie:
Dus:
  1. $rij=explode("\n", $tekst);
  2. foreach($rij as $rij)
  3. {
  4. $item=explode(" ", $rij);
  5. $insert=mysql_query("INSERT INTO tabel (naam, ietsanders) VALUES ('".$item[0]."', '".$item[1]."')") or die(mysql_error());
  6. }


Ik weet niet of er nu onenigheid komt omdat je spaties exploded op spaties, moet je even uitzoeken. Misschien dat je nu lege $item's krijgt, maar moet je even een oplossing voor vinden.


Edit:
Zag net dat iedere rij even lang was, dan kun je inderdaad beter substr() gebruiken.
05/18/07 13532.96 13536.37 13523.45 13526.38 1 1515
Eerste: 0-8
Tweede: 12-20
Derde: 24-31
Vierde: 35-42
Vijfde: 46-53
Zesde: 55-56
Zevende: 66-69

  1. <?php
  2. $rij=explode("\n", $string);
  3. foreach($rij as $rij)
  4. {
  5. $item1=substr($rij, 0, 8);
  6. $item2=substr($rij, 12, 20);
  7. //etcetera
  8.  
  9. $insert=mysql_query("INSERT INTO table (iets, nogiets) VALUES ('".$item1."', '".$item2."')") or die(mysql_error());
  10. }
Offline raintjah - 08/09/2007 22:13
Avatar van raintjah Nieuw lid
foreach($rij as $rij)
?
moet die laatste niet $item zijn?
Offline l0c4lh0st - 09/09/2007 00:24 (laatste wijziging 09/09/2007 00:24)
Avatar van l0c4lh0st Nieuw lid
  1. <?php
  2. $aMyMatches = explode("\n", $sMyString);
  3. for ($i = 0, $iCount = count($aMyMatches); $i < $iCount; $i++)
  4. {
  5. $aRows = preg_split('\s+', $aMyMatches[$i]);
  6. // Doe iets met $aRows[0] t/m $aRows[5]
  7. }
  8. ?>
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2019 Sitemasters.be - Regels - Laadtijd: 0.251s