14. april 2004 - 09:27
Der er
7 kommentarer og 1 løsning
Multiple Insert Into.
Jeg forsøger at lave følgende: foreach ($_POST['MaalScore'] as $v) { mysql_query("INSERT INTO topscorer VALUES ('','$v','$kampid')"); } Kan jeg ikke lave dette i et kald?
Annonceindlæg fra Computerworld
14. april 2004 - 09:37
#1
$insertVals = array(); foreach ($_POST['MaalScore'] as $v) { $insertVals[] = "('','$v','$kampid')"; } if( count($insertVals) > 0 ) { mysql_query("INSERT INTO topscorer(felt1,felt2,felt3) " . join(',',$insertVals)); }
14. april 2004 - 09:38
#2
Syntaxmæssigt: INSERT INTO tabel (kolonne1,2,3) VALUES (1,3,2),(1,5,3)... Så der er en fejl i min kode :) mysql_query("INSERT INTO topscorer(felt1,felt2,felt3) VALUES " . join(',',$insertVals));
14. april 2004 - 09:45
#3
Præcis. Så jeg skal på en eller anden måde, have splittet op til: $_POST['MaalScore'] til: ('',værdi1,kampid), ('',værdi2,kampid), osv...
14. april 2004 - 10:07
#4
Det troede jeg også jeg havde gjort med: foreach ($_POST['MaalScore'] as $v){ $insertVals[] = "('','$v','$kampid')"; } kommer self. an på hvordan din MaalScore-array ser ud..
14. april 2004 - 10:16
#5
Ok, men jeg kan jo ikke bruge join / eller implode?? Den vil jo også splitte på"('','$v','$kampid')"; kommaerne immellem '' $v osv..? Eller tager jeg helt fejl?
14. april 2004 - 10:24
#6
Perfekt! Det virker fint nok! :o) Smider du et svar? :o)
14. april 2004 - 10:28
#7
Splitte? join(',',$insertVals) samler et array med komma mellem. Og da dit array ser sådan ud efter while: ('','$v','$kampid'). ('','$v','$kampid'). så vil join samle dem så; ('','$v','$kampid'),('','$v','$kampid') og det er jo det vi ønsker(?). ($v og $kampid bliver selv. ersttatet med indholdet af variablerne)
14. april 2004 - 10:29
#8
jeg er vist for langsom idag :) herligt
Computerworld tilbyder specialiserede kurser i database-management