Toon posts:

[php]File inlezen --> in dbase proppen werkt niet

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben bezig om mijn avatar uit te breiden (das dat plaatje hier links ;) ).

Hij schrijft nu alle gegevens (os, browser ed) weg in een bestand "hits.txt", gescheiden door |. Nu wil ik deze gegevens dus in een MySQL database gooien met het volgende scrippie:
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
<?
 
mysql_connect('localhost','root','') or die();    //verbinding maken 
mysql_select_db('phpavatar') or die();            //selecteer dbase 


$filestuff = file("hits.txt");        // filetje openen 
$hitnu = count($filestuff);            // aantal regels tellen 

for($i = 0; $i < $hitnu; $i++) { 
        $thisrow = explode("|", $filestuff[$i]); 
        $id = $hitnu; 
        $ip = $thisrow[0]; 
        $browser = $thisrow[1]; 
        $os = $thisrow[2]; 
        $url = $thisrow[3]; 
        $date = $thisrow[4]; 
        $insert = "INSERT INTO hits (id,ip,browser,os,url,date) VALUES ('$id','$ip','$browser','$os','$url','$date')"; 
        mysql_query($insert); 
         
         
        } 
echo "MySQL omzetting succesvol :)"; 
?>

Alleen probleempje: hij pakt alleen de eerste regel, de rest doet ie niets mee :( Waar zit de fout?

Verwijderd

Doe eens ipv $count $filestuff.length

Verwijderd

Topicstarter
Op vrijdag 18 januari 2002 23:12 schreef Tizzwat het volgende:
Doe eens ipv $count $filestuff.length
Hoe bedoel je?

(quote ff code --> wijzig daarin ff, dan kan ik t zien :+ )

Verwijderd

Topicstarter
Niemand? :)

Verwijderd

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?
..
$fd = fopen("hits.txt", "rb") or die("Can not open file.");
$hitnu = count($filestuff);
while (!feof ($fd)) {
  $buffer = fgets($fd, 4096); // Inhoud, lijn voor lijn
  $thisrow = explode("|", $buffer);
  $id = $hitnu;
  $ip = $thisrow[0];
  $browser = $thisrow[1];
  $os = $thisrow[2];
  $url = $thisrow[3];
  $date = $thisrow[4];
  $insert = "INSERT INTO hits (id,ip,browser,os,url,date) VALUES ('$id','$ip','$browser','$os','$url','$date')";         mysql_query($insert);
}
echo "MySQL omzetting succesvol :)";
?>

Zoiets? :)

Verwijderd

Topicstarter
Hmm, hij springt niet naar de volgende regel (heb ff echo $hitnu ertussen gezet, en die blijft maar op 0 staan :(

  • DRvDijk
  • Registratie: Juni 2001
  • Laatst online: 08-09 17:10
Volgens mij is het veel makkelijker met een foreach-dinges (t'is laat, nog 1 peuk en dan slapen):
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?
mysql_connect('localhost','root','') or die();    //verbinding maken
mysql_select_db('phpavatar') or die();            //selecteer dbase
$filestuff = file("hits.txt");        // filetje openen

foreach ($filestuff as $key => $value) {
  $thisrow = explode("|", $value);
  $id = $key + 1;    //  Even kijken naar dat +1... ik weet niet of dat nodig is in jou geval
  $ip = $thisrow[0];
  $browser = $thisrow[1];
  $os = $thisrow[2];
  $url = $thisrow[3];
  $date = $thisrow[4];
  $insert = "INSERT INTO hits (id,ip,browser,os,url,date) VALUES ('$id','$ip','$browser','$os','$url','$date')";
  mysql_query($insert);
}

echo "MySQL omzetting succesvol :)";
mysql_close ();
?>

Succes!

Verwijderd

Topicstarter
YEAH! Hij doet t :)

Enorm bedankt man! :)

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

zet de volgende keer even [PHP] voor je topic naam zodat alleen php`ers dit lezen.

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op zaterdag 19 januari 2002 06:15 schreef [Mike] het volgende:
Hmm, hij springt niet naar de volgende regel (heb ff echo $hitnu ertussen gezet, en die blijft maar op 0 staan :(
Als je de code van dat while voorbeeld goed had bekeken zag je dat de while loop helemaal geen gebruik maakt van $hitnu ;)

Met ook als gevolg dat ie 0 wordt gemaakt, zonder gebruikt te worden.

Verwijderd

Topicstarter
Hmm, daar dacht ik vanmorgen op de fiets ook al aan :)

Ennuh, ik zal dat [PHP] de volgende keer wel ff bijzetten, nu ging t niet: invoerveld topic-titel was te klein :D
Pagina: 1