23. januar 2009 - 10:22
Der er
19 kommentarer og 1 løsning
Hjælp til at dele en $_get streng og indsætte den i mysql
Hej Har en $_get streng som ser ud som denne: ?udtrak=12,23,54,21,45,31,27,99,43,23 Hvordan får jeg den delt op og sat i databasen så de bliver sat ind i hver sin række ?
Annonceindlæg tema
23. januar 2009 - 10:56
#1
$dit_array = explode($_GET['udtrak']); $size = count($dit_array); for($i=0;$i<$size;$i++){ mysql_query("insert into din_tabel(tal) values('$dit_array[$i]') or die(mysql_error()); }
23. januar 2009 - 10:56
#2
hov $dit_array = explode($_GET['udtrak']); skal være $dit_array = explode(",", $_GET['udtrak']);
23. januar 2009 - 11:30
#3
Takker, det var lige det jeg skulle bruge ;) hvis du svare så er der points
23. januar 2009 - 11:57
#4
I én insert: $ids = explode( ",", $_GET['udtrak'] ); $res = array(); foreach ($ids as $id) { $res[] = '('.$id.')'; } $ids = implode( ",", $res ); $sql = "INSERT INTO din_tabel (feltnavn) VALUES " . $ids; mysql_query( $sql );
23. januar 2009 - 11:59
#5
eller totalt snyd: mysql_query("insert into din_tabel(tal) values(" str_replace(",","),(", $_GET['udtrak'] . ")") or die(mysql_error());
23. januar 2009 - 12:10
#6
Skal der tages højde for sql angreb også?
23. januar 2009 - 12:14
#7
-> coderdk - vil den ikke indsætte én række med alle tallene i stedet for en rækker for hver tal? -> big_ossi - skal vi ikke lade den stå åben til coderdk svarer på denne hér? for så vil hans kode umiddelbart være bedre, måske lige bortset fra den der foreach :)
23. januar 2009 - 12:16
#8
23. januar 2009 - 12:25
#9
-> locke - der kan man bare se, så lærte jeg også noget nyt i dag :) -> big_ossi - så bør du helt klart gå efter coderdk's løsning, da den kun laver et db-kald, hvorimod min laver ét for hver post i arrayet.
23. januar 2009 - 12:25
#10
splazz, Nej den sætter X rækker ind... Ingen af mine tager højde for sql injections... dette kan f.eks. gøres sådan: $ids = explode( ",", $_GET['udtrak'] ); $res = array(); foreach ($ids as $id) { $res[] = sprintf( '(%d)', $id ); } $ids = implode( ",", $res ); $sql = "INSERT INTO din_tabel (feltnavn) VALUES " . $ids; mysql_query( $sql );
23. januar 2009 - 12:38
#11
Efter og have prøvet den sidste fra coderdk kan jeg se den kun indsætter 1 række som ser sådan her ud (21),(24),(74)
23. januar 2009 - 13:11
#12
Så har du ' omkring?
24. januar 2009 - 22:39
#13
har bare dit eksempel og lagt ind så der er ikke rettet ved det
26. januar 2009 - 02:18
#14
Hvad med bare: mysql_query("INSERT INTO din_tabel (feltnavn) VALUES ('".str_replace(",", "'),('", $_GET['udtrak'])."')");
26. januar 2009 - 09:19
#15
-> tmi - og så lige en or die på ;)
Jeps bruger dette fra første indlæg. $dit_array = explode(",", $_GET['tal']); $size = count($dit_array); for($i=0;$i<$size;$i++){ funktion1($dit_array[$i],$tekst); }
cool, så smider jeg et svar...
27. juli 2009 - 21:08
#20
tak for point
Vi tilbyder markedets bedste kurser inden for webudvikling