Från textfil till MySql

PHP

8 svar · 208 visningar · startad av Gislaved.net

Medlem sedan juni 20001 521 inlägg
Trådstart#1

Jag har en textfil där jag har lagrat en massa poster, en post på varje rad.

Varje rad ser ut ungefär såhär:

idnr|namn|nästa fält|ännu ett fält...|och så vidare....

Hur kan jag läsa av innehållet i varje fält till en variabel, för att kunna lagra datan i en MySql-databas?

Medlem sedan dec. 19991 749 inlägg
#2

Läs in filen och loopa

Gör en explode på | i varje rad du kommer in och gör en INSERT med arrayen.

Medlem sedan feb. 20001 270 inlägg
#3

Vad Nanne försöker berätta är följande:

$fp=fopen("textfilen.txt", "r");
if($fp) {
while(!feof($fp)) {
$s=fgets($fp, 30000);
$s=explode("|",$s);
mysql_query("insert into tabellnamn set fält1='$s[0]',fält2='$s[1]'");
}
}

Medlem sedan juni 20001 521 inlägg
#4

Visst... det fungerar fint! Tack!

Om jag vill börja från slutet av filen istället... hur gör jag då?

Medlem sedan feb. 20001 270 inlägg
#5

Då får Du läsa in raderna i en array och sedan sortera den fallande rsort().
Och sedan göra en explode på varje array-post.

Medlem sedan juni 20001 521 inlägg
#6

Okej... jag fick ordning på det till slut. Tack!

Det enda som krånglar är ett litet datumfält som jag vill ha i ett annat format. I textfilen står det som 25/9 - 2000 18:56, det vill säga dagen och månaden anges med en eller två siffror. Jag vill ha datumet i formatet 200009251856 om det går.

Jag använder substr för att plocka ut delar av datumet, men jag får det inte riktigt att stämma.

Medlem sedan feb. 20001 270 inlägg
#7

Använd följande funktion och anropa från loopen.

Function GetTime($indate){
$indate="25/9 - 2000 18:56";
$tmp=explode("/",$indate);
$day=$tmp[0];
$tmp=explode(" ",$tmp[1]);
$month=$tmp[0];
$year=$tmp[2];
$tmp=explode(":",$tmp[3]);
$hour=$tmp[0];
$minute=$tmp[1];

if(strlen($day)==1)
  $day="0".$day;
if(strlen($month)==1)
  $month="0".$month;
   
$outdate=$year.$month.$day.$hour.$minute; 
return $outdate;

}

Anropa med:
$NewDate=GetTime("25/9 - 2000 18:56");

Medlem sedan juni 20001 521 inlägg
#8

Tack woodi! Du är en ängel... :-)

explode-grejen var smart... den ska jag använda mig av fler gånger.

Medlem sedan feb. 20001 270 inlägg
#9

Hey, varsågod! :)

253 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)