30. januar 2005 - 22:37
Der er
22 kommentarer og 1 løsning
php syntaks i query string.
$query = "INSERT INTO players SET agression='".rand(1,20)."'"; Denne synes ikke at få nogen reaktion? Hvordan skal det skrives? På forhånd tak.
Annonceindlæg fra Sabio
30. januar 2005 - 22:41
#2
SET bliver brugt til UPDATE INSERT INTO players (agression) VALUES(rand(1,20))
30. januar 2005 - 22:43
#3
re alist: alt det har jeg :) jeg sparede jer bare for alt det andet. re michael jeg må hellere give dig hele linien så. mysql_connect("x","x"); mysql_select_db("x"); $b=0; for ($a=0;$a<19;$a++) { $query = "INSERT INTO players SET fornavn='$fornavntekst[$a]', efternavn='$efternavntekst[$a]', alder='$alder[$a]', stamina='$arr[$b]', strength='{$arr[$b+1]}', pace='{$arr[$b+2]}', technique='{$arr[$b+3]}', crossing='{$arr[$b+4]}', marking='{$arr[$b+5]}', tackling='{$arr[$b+6]}', passing='{$arr[$b+7]}', heading='{$arr[$b+8]}', finishing='{$arr[$b+9]}', longshots='{$arr[$b+10]}', setpieces='{$arr[$b+11]}', workrate='{$arr[$b+12]}', positioning='{$arr[$b+13]}', agression='".rand(1,20)."', injuryproneness='".rand(1,20)."', profressionalism='".rand(1,20)."', potential='".rand(1,20)."', talent='".rand(1,20)."'"; $result = mysql_query($query); $b=$b+14; } mysql_close();
30. januar 2005 - 22:45
#4
SQL syntaxen er ganske enkelt forkert. Den rigtige syntax for det du prøver at skrive er: $query = "INSERT INTO players (agression) VALUES ('" . rand(1,20) . "')"; Husk at putte den i en mysql_query() - ellers kommer der intet resultat.
30. januar 2005 - 22:46
#5
hvordan skriver jeg den rigtige syntaks uden at skulle ændre alt for meget af det jeg allerede har? Jeg kan ikke rigtig se hvordan jeg ellers skal gøre det med de loops og arrays jeg har i forvejen.
30. januar 2005 - 22:46
#6
Hov, der var svaret. Men så må jeg hellere uddybe lidt. $query = "INSERT INTO players (fornavn, efternavn, agression) VALUES ('" . $fornavntekst[$a] . "', "'$efternavntekst[$a]'", '" . rand(1,20) . "')";
30. januar 2005 - 22:48
#7
uddyb er godt :) <- begynder.
30. januar 2005 - 22:49
#8
INSERT INTO players (alle dine kolonnenavne sepereret med komme) VALUES(värdier til specifikke kolonnenavn sepereret med komma) Så kan jeg se at du har arrays over det hele, hvorfor det?
30. januar 2005 - 22:53
#9
Du behöver ikke at seperere SQL-stringen: VALUES ('" . $fornavntekst[$a] . "', "'$efternavntekst[$a]'", '" . rand(1,20) . "')"; VALUES ('$fornavntekst[$a]', '$efternavntekst[$a]', rand(1,20))";
30. januar 2005 - 22:56
#10
Du blander jo ikke html og php.
30. januar 2005 - 23:01
#11
der er stadig ikke bid: $query = "INSERT INTO players (fornavn, efternavn, alder, stamina, strength, pace, technique, crossing, marking, tackling, passing, heading, finishing, longshots, setpieces, workrate, positioning, aggression, injuryproneness, professionalism, potential, talent) VALUES ('$fornavntekst[$a]','$efternavntekst[$a]','$alder[$a]','$arr[$b]','$arr[$b+1]','$arr[$b+2]','$arr[$b+3]','$arr[$b+4]','$arr[$b+5]','$arr[$b+6]','$arr[$b+7]','$arr[$b+8]','$arr[$b+9]','$arr[$b+10]','$arr[$b+11]','$arr[$b+12]','$arr[$b+13]',rand(1,20),rand(1,20),rand(1,20),rand(1,20),rand(1,20))"; "Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting ']' "
30. januar 2005 - 23:04
#12
$query = "INSERT INTO players (fornavn, efternavn, alder, stamina, strength, pace, technique, crossing, marking, tackling, passing, heading, finishing, longshots, setpieces, workrate, positioning, aggression, injuryproneness, professionalism, potential, talent) VALUES ('$fornavntekst[$a]','$efternavntekst[$a]','$alder[$a]','$arr[$b]','$arr[$b+1]', '$arr[$b+2]','$arr[$b+3]','$arr[$b+4]','$arr[$b+5]','$arr[$b+6]','$arr[$b+7]', '$arr[$b+8]','$arr[$b+9]','$arr[$b+10]','$arr[$b+11]','$arr[$b+12]','$arr[$b+13]' ,rand(1,20),rand(1,20),rand(1,20),rand(1,20),rand(1,20))";
30. januar 2005 - 23:04
#13
For en ordens skyld. Du kan godt bruge INSERT med denne syntax: INSERT INTO players SET SET fornavn='$fornavntekst[$a]', efternavn='$efternavntekst[$a]', osv.....
30. januar 2005 - 23:05
#14
De felter der er integer eller lign. (tal), skal ikke have '' omkring.
30. januar 2005 - 23:07
#15
Det har jeg aldrig prövet eller set, detox. Dermed ikke sagt at det ikke fungerer.
30. januar 2005 - 23:07
#16
Prøv evt. at sætte: or die(mysql_error()) på dine forespørgsler: $result = mysql_query($query) or die(mysql_error());
30. januar 2005 - 23:10
#18
detox du er min helt :) også tak til alle andre.. Det viser sig selvfølgelig at jeg har stavet: profressinalism... I den første string. Det jo ikke helt rigtigt. Smid et svar detox.
30. januar 2005 - 23:10
#19
og tak til alle jer andre for jeres tid.
30. januar 2005 - 23:12
#20
Velbekomme ;o)
30. januar 2005 - 23:13
#21
michael_stim og gustav-olsen: Vrøvl. INSERT INTO tabel SET felt1 = 123, felt2 = 'abc' Virker ganske fint, prøv selv eller læs dokumentationen ;) Du kan også sagtens sige: INSERT INTO tabel SET integer_felt = '123' Det fungerer også fint, og anbefales i tilfælde med PHP, da du så får lidt ekstra sikkerhed imod SQL-injection: $sql = "INSERT INTO tabel SET int_felt = '" . mysql_escape_string( $_GET['vaerdi'] ) . "'";
30. januar 2005 - 23:13
#22
Velbekommen og for lige at slå det fast osse: Det gør ingen forskel for MySQL om du bruger ' ' omkring tal, så for nemheds skyld, så brug det altid.
30. januar 2005 - 23:16
#23
detox>>Der er vi så forskellige. Jeg foreträkker at seperere tal og tekst og bruge den alm. sql-standard.
Vi tilbyder markedets bedste kurser inden for webudvikling