Avatar billede goje Nybegynder
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))
Avatar billede andreas Nybegynder
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])\");
}
Avatar billede goje Nybegynder
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])\");



?>
Avatar billede andreas Nybegynder
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])\");


Avatar billede goje Nybegynder
18. januar 2001 - 16:02 #4
Ikke for at være næsvis, men hvad ændrede du? :o)
Avatar billede sorenmh Nybegynder
18. januar 2001 - 16:09 #5
han ændrede variablen i count() funktionen fra $file til $fs
Avatar billede goje Nybegynder
18. januar 2001 - 16:17 #6
Oh :o)
Takker Sorenmh :o)
Avatar billede goje Nybegynder
18. januar 2001 - 16:21 #7
Det virker heller ikke.. scriptet kører, men der bliver ikke smidt data i db\'en :o/
Avatar billede andreas Nybegynder
18. januar 2001 - 16:22 #8
jeps... nogle gange er det kun små ting der laver fejl....
Avatar billede goje Nybegynder
18. januar 2001 - 16:24 #9
Hmmm... nogle ideer?
Avatar billede andreas Nybegynder
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\");


?>
Avatar billede sorenmh Nybegynder
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
Avatar billede goje Nybegynder
18. januar 2001 - 16:36 #12
Hmmm... \"Unable to insert into tabel\"


AARGH!!

Skal filen ligge et bestemt sted for at virke?
Avatar billede andreas Nybegynder
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());


?>
Avatar billede goje Nybegynder
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.....
Avatar billede andreas Nybegynder
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\");


?>
Avatar billede goje Nybegynder
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
Avatar billede goje Nybegynder
18. januar 2001 - 16:51 #17
Og takker for hjælpen indtil videre :o)
Avatar billede andreas Nybegynder
18. januar 2001 - 16:56 #18
ahhh... du skal i din txt fil skifte alle \" \' \" med \" \\\' \"
Avatar billede goje Nybegynder
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)
Avatar billede andreas Nybegynder
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 ????
Avatar billede goje Nybegynder
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?
Avatar billede andreas Nybegynder
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\");


?>
Avatar billede goje Nybegynder
18. januar 2001 - 17:08 #23
Hmm... der er en parse error .. leder lige lidt. kan du se  om du kan finde den?
Avatar billede goje Nybegynder
18. januar 2001 - 17:19 #24
Hmmm....

You have an error in your SQL syntax near \'\\COLLINS COBUILD\',\'\\4\',\'\\24000\\ \')\' at line 1
Avatar billede goje Nybegynder
18. januar 2001 - 17:42 #25
Skal jeg smide lidt xtra points af til det? :o)
Avatar billede goje Nybegynder
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)
Avatar billede goje Nybegynder
19. januar 2001 - 13:39 #27
Hjælp?
Avatar billede andreas Nybegynder
19. januar 2001 - 15:23 #28
virker mit nu ???
Avatar billede goje Nybegynder
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?
Avatar billede andreas Nybegynder
20. januar 2001 - 14:43 #30
du skal bare sige \"null\" når du opretter feltet og ikke Not Null
Avatar billede gojelink Nybegynder
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.
Avatar billede andreas Nybegynder
26. januar 2001 - 13:55 #32
Hvilken type er feltet... ???
Avatar billede goje Nybegynder
26. januar 2001 - 13:59 #33
Det er et char (varchar) felt på 35 tegn :o)
Avatar billede andreas Nybegynder
26. januar 2001 - 19:28 #34
nårh.... prøv at lave det til int(11)
Avatar billede goje Nybegynder
26. januar 2001 - 19:34 #35
Der er bogstaver i id\'et :o)
Avatar billede jd Nybegynder
27. januar 2001 - 20:15 #36
<?php
if(\"gojelink\" == \"goje\"){
meld til admin
}
else{
Mærkelige besvarelser i dette spm...
}
?>
Avatar billede goje Nybegynder
28. januar 2001 - 00:20 #37
Sorry.. det er lidt forskelligt.. lige i øjeblikket bruge jeg 2 accounts lige i øjeblikket :o)
Avatar billede goje Nybegynder
28. januar 2001 - 00:21 #38
woops :o)
Avatar billede jd Nybegynder
28. januar 2001 - 13:46 #39
\"woops\" ??? Det er stik imod ekspertens reglement!!!

AADDDMMIIINNN!!!????
Avatar billede goje Nybegynder
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)
Avatar billede goje Nybegynder
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..
Avatar billede 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...
Avatar billede goje Nybegynder
30. januar 2001 - 08:37 #43
Jow jow.. is done..

Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester