18. januar 2001 - 14:05
Der er
42 kommentarer og 1 løsning
Kommasep. fil igen igen :o)
Hejsa.. dette skulle være sidste gang. Jeg bruger følgende kode til at indsætte data fra en kommasepareret fil i en database: $filnavn = \"\"; // Dit filnavn $fs = fopen($filnavn, \"r\"); while(!feof($fs)){ $linie = fgets($fs, 4096); $indhold = str_replace(\"\\\"\", \"\", $linie); $indhold = explode(\",\",$indhold); mysql_query(\"INSERT INTO tabel(varenr,varetekst,forfatter,bontekst,varegruppe,salgspris)\" . \"VALUES($indhold[0],$indhold[1],$indhold[2],$indhold[3],$indhold[4],$indhold[5])\"); } fclose($fs); Problemet er, at der kun bliver indsat een linie i database og den er tom :o/ Data\'ene står på følgende form. \"Varenr\",\"Varetekst\",\"Forfatter\",\"Bontekst\",\"Varegruppe\",\"Salgspris\" \"0002259060\",\"ALL QUIET ON THE ORIENT EXPRESS\",\"MILLS\",\"ALL QUIET ON THE\",\"4\",\"15500\" \"0002557932\",\"I SEE A VOICE\",\"REE\",\"I SEE A VOICE\",\"4\",\"31500\" \"0002570777\",\"PIP PIP\",\"GRIFFITHS\",\"PIP PIP\",\"4\",\"21000\" \"0003709418\",\"COLLINS COBUILD ENGLISH DICTIONARY\",\"\",\"COLLINS COBUILD\",\"4\",\"24000\" \"0003750450\",\"KEY WORDS IN BUSINESS\",\"MASCULL\",\"KEY WORDS IN BUS\",\"4\",\"15000\" \"0004331273\",\"SCHOOL DICTIONARY\",\"\",\"SCHOOL DICTIONAR\",\"4\",\"13000\" \"0004700724\",\"POCKET ENGLISH THE SAURUS\",\"COLLINS\",\"POCKET ENGLISH T\",\"4\",\"13000\" \"0004709802\",\"JANES AIRCRAFT RECOGNITION GUIDE\",\"\",\"JANES AIRCRAFT R\",\"4\",\"24000\" \"0006377408\",\"CULTURES AND ORGANIZATIONS\",\"HOFSTEDE\",\"CULTURES AND ORG\",\"4\",\"12000\" \"0006384021\",\"IN SEARCH OF EXCELLENCE\",\"\",\"IN SEARCH OF EXC\",\"4\",\"15500\" \"0006547516\",\"THE WEB OF LIFE\",\"CPRA\",\"THE WEB OF LIFE\",\"4\",\"14000\" \"0006551149\",\"THE RESTRANT OF BEASTS\",\"MILLS\",\"THE RESTRANT OF\",\"4\",\"10500\" \"0006862101\",\"FRANCO\",\"PRESTON\",\"FRANCO\",\"4\",\"19500\" \"0006862500\",\"THE ROMAN REPUBLIC\",\"CRAWFORD\",\"ROMAN REPUBLIC\",\"4\",\"16000\" Hjæælp :o))
Annonceindlæg fra Infor
18. januar 2001 - 14:37
#1
$filnavn = \"fil.txt\"; // Dit filnavn $fs = file($filnavn); for($i = 0; $i < count($file); $i++) { $indhold = str_replace(\"\\\"\", \"\", $fs[$i]); $indhold = explode(\"\\,\",$indhold); mysql_query(\"INSERT INTO tabel(varenr,varetekst,forfatter,bontekst,varegruppe,salgspris)\" . \"VALUES($indhold[0],$indhold[1],$indhold[2],$indhold[3],$indhold[4],$indhold[5])\"); }
18. januar 2001 - 14:47
#2
Nope.. nu sker der slet ingen ting: <? $hostname = \"*****\"; $username = \"*****\"; $password = \"*****\"; $dbName = \"*****\"; /* make connection to database */ $connection = MYSQL_CONNECT($hostname, $username, $password) OR DIE(\"Unable to connect to database\"); @mysql_select_db( \"$dbName\", $connection ) or die( \"Unable to select database\" ); $filnavn = \"prisvare1.txt\"; // Dit filnavn $fs = file($filnavn); for($i = 0; $i < count($file); $i++) { $indhold = str_replace(\"\\\"\", \"\", $fs[$i]); $indhold = explode(\"\\,\",$indhold); mysql_query(\"INSERT INTO books(varenr,varetekst,forfatter,bontekst,varegruppe,salgspris)\" . \"VALUES($indhold[0],$indhold[1],$indhold[2],$indhold[3],$indhold[4],$indhold[5])\"); } ?>
18. januar 2001 - 15:53
#3
<? $hostname = \"*****\"; $username = \"*****\"; $password = \"*****\"; $dbName = \"*****\"; /* make connection to database */ $connection = MYSQL_CONNECT($hostname, $username, $password) OR DIE(\"Unable to connect to database\"); @mysql_select_db(\"$dbName\", $connection ) or die( \"Unable to select database\" ); $filnavn = \"prisvare1.txt\"; // Dit filnavn $fs = file($filnavn); for($i = 0; $i < count($fs); $i++) { $indhold = str_replace(\"\\\"\", \"\", $fs[$i]); $indhold = explode(\"\\,\",$indhold); mysql_query(\"INSERT INTO books(varenr,varetekst,forfatter,bontekst,varegruppe,salgspris)\" . \"VALUES($indhold[0],$indhold[1],$indhold[2],$indhold[3],$indhold[4],$indhold[5])\"); }
18. januar 2001 - 16:02
#4
Ikke for at være næsvis, men hvad ændrede du? :o)
18. januar 2001 - 16:09
#5
han ændrede variablen i count() funktionen fra $file til $fs
18. januar 2001 - 16:17
#6
Oh :o) Takker Sorenmh :o)
18. januar 2001 - 16:21
#7
Det virker heller ikke.. scriptet kører, men der bliver ikke smidt data i db\'en :o/
18. januar 2001 - 16:22
#8
jeps... nogle gange er det kun små ting der laver fejl....
18. januar 2001 - 16:24
#9
Hmmm... nogle ideer?
18. januar 2001 - 16:25
#10
her selv testet det... dette laver ikke fejl hos mig <? $hostname = \"*****\"; $username = \"*****\"; $password = \"*****\"; $dbName = \"*****\"; /* make connection to database */ $connection = MYSQL_CONNECT($hostname, $username, $password) OR DIE(\"Unable to connect to database\"); mysql_select_db(\"$dbName\", $connection ) or die( \"Unable to select database\" ); $filnavn = \"prisvare1.txt\"; // Dit filnavn $fs = file($filnavn); for($i = 0; $i < count($fs); $i++) { $indhold = str_replace(\"\\\"\", \"\", $fs[$i]); $indhold = explode(\"\\,\",$indhold); mysql_query(\"INSERT INTO books(varenr,varetekst,forfatter,bontekst,varegruppe,salgspris) VALUES ($indhold[0],$indhold[1],$indhold[2],$indhold[3],$indhold[4],$indhold[5])\") or die(\"Unable to insert into tabel\"); } ?>
18. januar 2001 - 16:28
#11
når der ikke bliver sat noget ind i databasen er det ofte fordi at databasen ikke stemmer overens med koden. har du følgende felter i dit table: varenr varetekst forfatter bontekst varegruppe salgspris
18. januar 2001 - 16:36
#12
Hmmm... \"Unable to insert into tabel\" AARGH!! Skal filen ligge et bestemt sted for at virke?
18. januar 2001 - 16:38
#13
prøv dette... så ser du fejlen: <? $hostname = \"*****\"; $username = \"*****\"; $password = \"*****\"; $dbName = \"*****\"; /* make connection to database */ $connection = MYSQL_CONNECT($hostname, $username, $password) OR DIE(\"Unable to connect to database\"); mysql_select_db(\"$dbName\", $connection ) or die( \"Unable to select database\" ); $filnavn = \"prisvare1.txt\"; // Dit filnavn $fs = file($filnavn); for($i = 0; $i < count($fs); $i++) { $indhold = str_replace(\"\\\"\", \"\", $fs[$i]); $indhold = explode(\"\\,\",$indhold); mysql_query(\"INSERT INTO books(varenr,varetekst,forfatter,bontekst,varegruppe,salgspris) VALUES ($indhold[0],$indhold[1],$indhold[2],$indhold[3],$indhold[4],$indhold[5])\") or die(mysql_error()); } ?>
18. januar 2001 - 16:40
#14
You have an error in your SQL syntax near \'ALL QUIET ON THE ORIENT EXPRESS,MILLS,ALL QUIET ON THE,4,15500 ,,,,,)\' at line 1 Hmmmmm.....
18. januar 2001 - 16:44
#15
<? $hostname = \"*****\"; $username = \"*****\"; $password = \"*****\"; $dbName = \"*****\"; /* make connection to database */ $connection = MYSQL_CONNECT($hostname, $username, $password) OR DIE(\"Unable to connect to database\"); mysql_select_db(\"$dbName\", $connection ) or die( \"Unable to select database\" ); $filnavn = \"prisvare1.txt\"; // Dit filnavn $fs = file($filnavn); for($i = 0; $i < count($fs); $i++) { $indhold = str_replace(\"\\\"\", \"\", $fs[$i]); $indhold = explode(\"\\,\",$indhold); mysql_query(\"INSERT INTO books(varenr,varetekst,forfatter,bontekst,varegruppe,salgspris) VALUES (\'$indhold[0]\',\'$indhold[1]\',\'$indhold[2]\',\'$indhold[3]\',\'$indhold[4]\',\'$indhold[5]\')\") or die(\"Unable to insert into tabel\"); } ?>
18. januar 2001 - 16:48
#16
Nu nærmer vi os vidst.. 2 problemer.. den skal vidst ignorere \" \' \" og så skal den opdele felterne.. det hele bliver smidt ind i det første felt.. You have an error in your SQL syntax near \'S OUTLINE FLUID DYNAMICS,HUGHES,SCHAUM\'S OUTLINE,4,28000 \',\'\',\'\',\'\',\'\',\'\')\' at line 1
18. januar 2001 - 16:51
#17
Og takker for hjælpen indtil videre :o)
18. januar 2001 - 16:56
#18
ahhh... du skal i din txt fil skifte alle \" \' \" med \" \\\' \"
18. januar 2001 - 16:58
#19
Okarj... hvad med problemet med, at den smider al data ind i det første felt og ikke noget i resten? :o)
18. januar 2001 - 17:00
#20
det løser sig nok... btw... kan da lige lave sådan at den i scriptet erstatter \" \' \" med \" \\\' \" i stedte for hvis du vil have det ????
18. januar 2001 - 17:01
#21
Det ville styre :o)) Har du en ide til hvordan man får den til at fordele data rigtigt?
18. januar 2001 - 17:03
#22
sår\'n.... og den skulle også fordele dataen rigtigt.... <? $hostname = \"*****\"; $username = \"*****\"; $password = \"*****\"; $dbName = \"*****\"; /* make connection to database */ $connection = MYSQL_CONNECT($hostname, $username, $password) OR DIE(\"Unable to connect to database\"); mysql_select_db(\"$dbName\", $connection ) or die( \"Unable to select database\" ); $filnavn = \"prisvare1.txt\"; // Dit filnavn $fs = file($filnavn); for($i = 0; $i < count($fs); $i++) { $fs[$i] = addslashes($fs[$i]); $indhold = str_replace(\"\\\"\", \"\", $fs[$i]); $indhold = explode(\"\\,\",$indhold); mysql_query(\"INSERT INTO books(varenr,varetekst,forfatter,bontekst,varegruppe,salgspris) VALUES (\'\".$indhold[0]\',\'$indhold[1]\',\'$indhold[2]\',\'$indhold[3]\',\'$indhold[4]\',\'$indhold[5]\')\") or die(\"Unable to insert into tabel\"); } ?>
18. januar 2001 - 17:08
#23
Hmm... der er en parse error .. leder lige lidt. kan du se om du kan finde den?
18. januar 2001 - 17:19
#24
Hmmm.... You have an error in your SQL syntax near \'\\COLLINS COBUILD\',\'\\4\',\'\\24000\\ \')\' at line 1
18. januar 2001 - 17:42
#25
Skal jeg smide lidt xtra points af til det? :o)
18. januar 2001 - 18:19
#26
Hmmm.. hvordan tager man højde for, at enkelte felter evt er tomme? Det er det der ikke virker :o)
19. januar 2001 - 13:39
#27
Hjælp?
19. januar 2001 - 15:23
#28
virker mit nu ???
20. januar 2001 - 14:12
#29
Næsten.. der er et lille problem med, at den fjerner det første tal i id-nr :o) Og så kan den ikke klare tomme felter.. kan det fixes?
20. januar 2001 - 14:43
#30
du skal bare sige \"null\" når du opretter feltet og ikke Not Null
26. januar 2001 - 08:34
#31
Sådan er de allerede oprettede :o) Men det er ikke det største problem, det kan jeg godt løse, det er et større problem, at scriptet \"æder\" det første tal/bogstav i ID nr.
26. januar 2001 - 13:55
#32
Hvilken type er feltet... ???
26. januar 2001 - 13:59
#33
Det er et char (varchar) felt på 35 tegn :o)
26. januar 2001 - 19:28
#34
nårh.... prøv at lave det til int(11)
26. januar 2001 - 19:34
#35
Der er bogstaver i id\'et :o)
jd
Nybegynder
27. januar 2001 - 20:15
#36
<?php if(\"gojelink\" == \"goje\"){ meld til admin } else{ Mærkelige besvarelser i dette spm... } ?>
28. januar 2001 - 00:20
#37
Sorry.. det er lidt forskelligt.. lige i øjeblikket bruge jeg 2 accounts lige i øjeblikket :o)
28. januar 2001 - 00:21
#38
woops :o)
jd
Nybegynder
28. januar 2001 - 13:46
#39
\"woops\" ??? Det er stik imod ekspertens reglement!!! AADDDMMIIINNN!!!????
29. januar 2001 - 08:26
#40
Hør nu lige her.. Jeg oprettede en ny fordi jeg havde glemt hvad den gamle hed og nu har jeg fundet den anden.. Hvis du kan fortælle mig en måde hvorpå jeg kan slette den ene account er jeg ´mere end villig til at gøre det :o)
29. januar 2001 - 09:09
#41
Men hvis det kan trøste dig kan jeg fortælle dig, at jeg bruger den ene konto privat og den anden på arbejdet... det er derfor det ene svar er fra gojelink, da det er svaret fra min home account..
jd
Nybegynder
29. januar 2001 - 20:25
#42
At du havde glemt dit password berettiger dig ikke til at oprette en ny bruger! Jeg er ret overbevist om at Eksperten har lavet en \"Send mig mit password\"-funktion !?
Adressen må være
http://www.eksperten.dk/bruger.phtml?navn=gojelink&i9=1&unsubscribe=true BEMÆRK: Den URL jeg har givet sletter brugeren uden at spørge!
Ellers finder du \"Afmelding\" på dit minisite!
Det er skam ikke mig der skal trøstes! Det er et helt klart brud på Eksperten\'s reglement!
Normalt sletter admin brugere uden advarsel!
Så vær du glad for at jeg ikke havde fået det meldt til admin...
30. januar 2001 - 08:37
#43
Jow jow.. is done..
Vi tilbyder markedets bedste kurser inden for webudvikling