|
| skrive til mysql med php Fra : Niels Orla Pedersen |
Dato : 04-01-09 09:56 |
|
Jeg er igen kørt fast i en insættelse af post til mysql.
Jeg har et regneark med 36 kolonner, hvoraf jeg kun skal bruge 3
kolonner. Jeg eksporter excell filen til en cvs fil. er der nogen
der har en ide, hvordan man gør det?
Jeg har prøvet dette, men uden resultat. Den indsætter kun 0:
if(isset($_POST['submit']))
{
$filename=$_POST['filename'];
$handle = fopen("$filename", "r");
while (($data = fgetcsv($handle, 1000, ";")) !== FALSE)
{
$import="INSERT into
aarsresultat(medlem_nr,medlemsnavn,`by`,`1_9`,`8_9`,`15_9`,`22_9`
,`29_9`,`6_10`,`13_10`,`20_10`,`27_10`,`3_11`,`10_11`,`17_11`,`24
_11`,`1_12`,`8_12`,`15_12`,`5_1`,`12_1`,`19_1`,`26_1`,`2_2`,`9_2`
,`16_2`,`23_2`,`2_3`,`9_3`,`16_3`,`23_3`,`30_3`,`6_4`,`13_4`,`20_
4`,gns)
values('$data[0]','$data[1]','$data[2]','$data[3]','$data[4]','$d
ata[5]','$data[6]','$data[7]','$data[8]','$data[9]','$data[10]','
$data[11]','$data[12]','$data[13]','$data[14]','$data[15]','$data
[16]','$data[17]','$data[18]','$data[19]','$data[20]','$data[21]'
,'$data[22]','$data[23]','$data[24]','$data[25]','$data[26]','$da
ta[27]','$data[28]','$data[29]','$data[30]','$data[31]','$data[32
]','$data[33]','$data[34]','$data[35]')";
Jeg er godt klar over, at det er en meget dårlig måde at gøre
det på, men min viden indenfor programmering er meget ringe.
Jeg skal kun bruge medlemsnavn , by og gns til følgende side
http://toftlundskatklub.dk/index.php?page=Stilling-i-klubturnerin
g
--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
| |
Dan Storm (04-01-2009)
| Kommentar Fra : Dan Storm |
Dato : 04-01-09 11:56 |
|
Niels Orla Pedersen skrev:
> Jeg har prøvet dette, men uden resultat. Den indsætter kun 0:
Betyder det at den indsætter nul rækker eller at den indsætter nuller i
felterne på de 46 kolonner? Sikkert det første....
> if(isset($_POST['submit']))
> {
> $filename=$_POST['filename'];
> $handle = fopen("$filename", "r");
> while (($data = fgetcsv($handle, 1000, ";")) !== FALSE)
> {
>
> $import="INSERT into
> aarsresultat(medlem_nr,medlemsnavn,`by`,`1_9`,`8_9`,`15_9`,`22_9`
> ,`29_9`,`6_10`,`13_10`,`20_10`,`27_10`,`3_11`,`10_11`,`17_11`,`24
> _11`,`1_12`,`8_12`,`15_12`,`5_1`,`12_1`,`19_1`,`26_1`,`2_2`,`9_2`
> ,`16_2`,`23_2`,`2_3`,`9_3`,`16_3`,`23_3`,`30_3`,`6_4`,`13_4`,`20_
> 4`,gns)
> values('$data[0]','$data[1]','$data[2]','$data[3]','$data[4]','$d
> ata[5]','$data[6]','$data[7]','$data[8]','$data[9]','$data[10]','
> $data[11]','$data[12]','$data[13]','$data[14]','$data[15]','$data
> [16]','$data[17]','$data[18]','$data[19]','$data[20]','$data[21]'
> ,'$data[22]','$data[23]','$data[24]','$data[25]','$data[26]','$da
> ta[27]','$data[28]','$data[29]','$data[30]','$data[31]','$data[32
> ]','$data[33]','$data[34]','$data[35]')";
>
> Jeg er godt klar over, at det er en meget dårlig måde at gøre
> det på, men min viden indenfor programmering er meget ringe.
Hvad kommer der fra mysql_error()? Hvis du overhovedet kører ovenstående?
--
Dan Storm - storm at err0r dot dk / http://err0r.dk
Tro ikke brugerne vil gøre noget for at undgå dit killfilter
- Så vigtig er du heller ikke!
| |
Niels Orla Pedersen (04-01-2009)
| Kommentar Fra : Niels Orla Pedersen |
Dato : 04-01-09 14:49 |
|
Dan Storm wrote in dk.edb.internet.webdesign.serverside.php:
> Niels Orla Pedersen skrev:
> > Jeg har prøvet dette, men uden resultat. Den indsætter kun 0:
>
> Betyder det at den indsætter nul rækker eller at den indsætter nuller i
> felterne på de 46 kolonner? Sikkert det første....
> Ja, den indsætter 0 i første række.
>
> > if(isset($_POST['submit']))
> > {
> > $filename=$_POST['filename'];
> > $handle = fopen("$filename", "r");
> > while (($data = fgetcsv($handle, 1000, ";")) !== FALSE)
> > {
> >
> > $import="INSERT into
> > aarsresultat(medlem_nr,medlemsnavn,`by`,`1_9`,`8_9`,`15_9`,`22_9`
> > ,`29_9`,`6_10`,`13_10`,`20_10`,`27_10`,`3_11`,`10_11`,`17_11`,`24
> > _11`,`1_12`,`8_12`,`15_12`,`5_1`,`12_1`,`19_1`,`26_1`,`2_2`,`9_2`
> > ,`16_2`,`23_2`,`2_3`,`9_3`,`16_3`,`23_3`,`30_3`,`6_4`,`13_4`,`20_
> > 4`,gns)
> > values('$data[0]','$data[1]','$data[2]','$data[3]','$data[4]','$d
> > ata[5]','$data[6]','$data[7]','$data[8]','$data[9]','$data[10]','
> > $data[11]','$data[12]','$data[13]','$data[14]','$data[15]','$data
> > [16]','$data[17]','$data[18]','$data[19]','$data[20]','$data[21]'
> > ,'$data[22]','$data[23]','$data[24]','$data[25]','$data[26]','$da
> > ta[27]','$data[28]','$data[29]','$data[30]','$data[31]','$data[32
> > ]','$data[33]','$data[34]','$data[35]')";
> >
> > Jeg er godt klar over, at det er en meget dårlig måde at gøre
> > det på, men min viden indenfor programmering er meget ringe.
>
> Hvad kommer der fra mysql_error()? Hvis du overhovedet kører ovenstående?
>Her fejlmeddelsen
>Duplicate entry '' for key 1
>
> --
> Dan Storm - storm at err0r dot dk / http://err0r.dk
>
> Tro ikke brugerne vil gøre noget for at undgå dit killfilter
> - Så vigtig er du heller ikke!
--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
| |
Dan Storm (04-01-2009)
| Kommentar Fra : Dan Storm |
Dato : 04-01-09 19:41 |
|
Niels Orla Pedersen skrev:
>> Ja, den indsætter 0 i første række.
>>
>>> [SNIP KODE]
>>
>> Hvad kommer der fra mysql_error()? Hvis du overhovedet kører ovenstående?
>> Her fejlmeddelsen
>> Duplicate entry '' for key 1
Problemet ligger i din $data[0] sikkert er tom eller indeholder et 0 for
hver række du prøver at sætte ind.
Derfor får du den mysql fejl: altså, du prøver at indsætte medlem_nr = 0
mere end en gang og så kommer den ikke videre fordi du prøver at
indsætte det samme medlem_nr igen (som igen er lig 0).
Kig dine data igennem, for det er sikkert en fejl i den måde du får
dataene ind.
--
Dan Storm - storm at err0r dot dk / http://err0r.dk
Tro ikke brugerne vil gøre noget for at undgå dit killfilter
- Så vigtig er du heller ikke!
| |
Niels Orla Pedersen (14-01-2009)
| Kommentar Fra : Niels Orla Pedersen |
Dato : 14-01-09 09:33 |
|
Dan Storm wrote in dk.edb.internet.webdesign.serverside.php:
> Niels Orla Pedersen skrev:
> >> Ja, den indsætter 0 i første række.
> >>
> >>> [SNIP KODE]
> >>
> >> Hvad kommer der fra mysql_error()? Hvis du overhovedet kører ovenstående?
> >> Her fejlmeddelsen
> >> Duplicate entry '' for key 1
>
> Problemet ligger i din $data[0] sikkert er tom eller indeholder et 0 for
> hver række du prøver at sætte ind.
>
> Derfor får du den mysql fejl: altså, du prøver at indsætte medlem_nr = 0
> mere end en gang og så kommer den ikke videre fordi du prøver at
> indsætte det samme medlem_nr igen (som igen er lig 0).
>
> Kig dine data igennem, for det er sikkert en fejl i den måde du får
> dataene ind.
> Min csv fil ser sådan ud forkortet:
1 fields in line 1:
Medl.nr.;Medlemsnavn;By;1.9.;8.9.;15.9.;22.9.;29.9.;6.10.;13.10.;20.10.;27.10.;
3.11.;10.11.;17.11.;24.11.;1.12.;8.12.;15.12.;5.1.;12.1.;19.1.;26.1.;2.2.;9.2.;
16.2.;23.2.;2.3.;9.3.;16.3.;23.3;30.3.;6.4.;13.4.;20.4;gns.
1 fields in line 2:
54; ;
;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;#DIVISION/0!
1 fields in line 3:
55; ;
;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;#DIVISION/0!
1 fields in line 4:
59;Fornavn;Efternavn
;Rødekro;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;#DIVIS
ION/0!
1 fields in line 5:
Så du har ret i at det er $data[0], der er problemet, men hvordan undgår jeg at
indsætte de linier der tomme.
Hilsen
Eksfynbo
> --
>
--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
| |
Dan Storm (14-01-2009)
| Kommentar Fra : Dan Storm |
Dato : 14-01-09 10:02 |
|
Niels Orla Pedersen skrev:
> Så du har ret i at det er $data[0], der er problemet, men hvordan undgår jeg at
> indsætte de linier der tomme.
>
Det er vel forhåbentlig ikke sådan din csv fil ser ud?
Altså, en beskrivelse af den kommende linie og så et par tomme linier
før den reelle linie kommer, og så et par tomme linier igen og så
starter vi forfra med næste entry?
For så skal du da overveje at rydde op i din fil inden...
--
Dan Storm - storm at err0r dot dk / http://err0r.dk
People who claim they don't let little things bother
them have never slept in a room with a single mosquito.
| |
Niels Orla Pedersen (16-01-2009)
| Kommentar Fra : Niels Orla Pedersen |
Dato : 16-01-09 17:46 |
|
Dan Storm wrote in dk.edb.internet.webdesign.serverside.php:
> Niels Orla Pedersen skrev:
> > Så du har ret i at det er $data[0], der er problemet, men hvordan undgår jeg at
> > indsætte de linier der tomme.
> >
>
> Det er vel forhåbentlig ikke sådan din csv fil ser ud?
> Altså, en beskrivelse af den kommende linie og så et par tomme linier
> før den reelle linie kommer, og så et par tomme linier igen og så
> starter vi forfra med næste entry?
>
> For så skal du da overveje at rydde op i din fil inden...
>
> Jo, det er faktisk, sådan min csv fil ser ud. Jeg er udmærket klar over, at det er
de tomme linier, der er mit problem.
Jeg modtager et regneark, som er opbygget, som et medlemskartotek med resultater fra
de enkelte spilleaftener.
Findes der en enm måde at rydde op i sådan et regneark????????????
>
Hilsen
eksfynbo
> --
>
--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
| |
|
|