12. november 2007 - 15:41
Der er
18 kommentarer og 1 løsning
nogen der kan finde min fejl
nogen der kan finde fejlen? <?php if(isset($_POST['submit'])) { $et = $_POST[1]; $to = $_POST[2]; $tre = $_POST[3]; $fire = $_POST[4]; $fem = $_POST[5]; $seks = $_POST[6]; $syv = $_POST[7]; $otte = $_POST[8]; $ni = $_POST[9]; $ti = $_POST[10]; $elleve = $_POST[11]; $tolv = $_POST[12]; $tretten = $_POST[13]; $fjorten = $_POST[14]; $femten = $_POST[15]; $seksten = $_POST[16]; $sytten = $_POST[17]; $atten = $_POST[18]; $nitten = $_POST[19]; $tyve = $_POST[20]; $entyve = $_POST[21]; $totyve = $_POST[22]; $tretyve = $_POST[23]; $firetyve = $_POST[24]; $femtyve = $_POST[25]; $sekstyve = $_POST[26]; $syvtyve = $_POST[27]; $ottetyve = $_POST[28]; $nityve = $_POST[29]; $bruger = $_SESSION[brugernavn]; mysql_query("INSERT INTO bruger_mopbasic WHERE brugernavn = $bruger (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 24, 25, 26, 27, 28, 29)" . "VALUES ('$et', '$to', '$tre', '$fire', '$fem', '$seks', '$syv', '$otte', '$ni', '$ti', '$elleve', '$tolv', '$tretten', '$fjorten', '$femten', '$seksten', '$sytten', '$atten', '$nitten', '$tyve', '$entyve', '$totyve', '$tretyve', '$firetyve', '$femtyve', '$sekstyve', '$syvtyve', '$ottetyve', '$nityve')") or die(mysql_error()); } FEJL: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE brugernavn = ma (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17' at line 1
Annonceindlæg fra DE-CIX
Edge computing: behandling ved kilden
Edge computing revolutionerer den måde, data behandles på, ved at bringe kapacitet og ydeevne tættere på dér, hvor der er behov for det.
15. april 2025
12. november 2007 - 15:52
#1
INSERT INTO tabel (felt1, felt2...) VALUES(værdi1, værdi2...) Du kan ikke bruge WHERE i en INSERT. Der skal du i så fald bruge UPDATE.
12. november 2007 - 16:00
#2
aha, okay vidste jeg ikke :) Men: mysql_query("UPDATE bruger_mopbasic WHERE brugernavn = $bruger (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 24, 25, 26, 27, 28, 29)" . "VALUES ('$et', '$to', '$tre', '$fire', '$fem', '$seks', '$syv', '$otte', '$ni', '$ti', '$elleve', '$tolv', '$tretten', '$fjorten', '$femten', '$seksten', '$sytten', '$atten', '$nitten', '$tyve', '$entyve', '$totyve', '$tretyve', '$firetyve', '$femtyve', '$sekstyve', '$syvtyve', '$ottetyve', '$nityve')") or die(mysql_error()); giver samme fejl
12. november 2007 - 16:02
#3
nårh ja noget med SET 1 = $et eller sådan noget ?
12. november 2007 - 16:19
#4
if(isset($_POST['submit'])) { $bruger = $_SESSION[brugernavn]; mysql_query("UPDATE bruger_mopbasic SET 1 ='$_POST[1]', 2 = '$_POST[2]', 3 = '$_POST[3]', 4 = '$_POST[4]' , 5 ='$_POST[5]' , 6 = '$_POST[6]' , 7 = '$_POST[7]' , 8 = '$_POST[8]' , 9 = '$_POST[9]' , 10 = '$_POST[10]' , 11 = '$_POST[11]' , 12 = '$_POST[12]' , 13 = '$_POST[13]' , 14 = '$_POST[14]' , 15 = '$_POST[15]' , 16 = '$_POST[6' , 17 = '$_POST[17]' , 18 = '$_POST[18]' , 19 = '$_POST[19]' , 20 = '$_POST[20]' , 21 = '$_POST[21]' , 22 = '$_POST[22]' , 23 = '$_POST[23]' , 24 = '$_POST[24]' , 25 = '$_POST[25]' , 26 = '$_POST[26]' , 27 = '$_POST[27]' , 28 = '$_POST[28]' , 29 = '$_POST[29]' WHERE brugernavn = '$bruger'") or die(mysql_error()); } giver blank side, ingen fejl men heller ikke andet
12. november 2007 - 16:38
#5
$bruger = $_SESSION[brugernavn]; if(isset($_POST['submit'])) { $et = $_POST['1']; $to = $_POST['2']; $tre = $_POST['3']; $fire = $_POST['4']; $fem = $_POST['5']; $seks = $_POST['6']; $syv = $_POST['7']; $otte = $_POST['8']; $ni = $_POST['9']; $ti = $_POST['10']; $elleve = $_POST['11']; $tolv = $_POST['12']; $tretten = $_POST['13']; $fjorten = $_POST['14']; $femten = $_POST['15']; $seksten = $_POST['16']; $sytten = $_POST['17']; $atten = $_POST['18']; $nitten = $_POST['19']; $tyve = $_POST['20']; $entyve = $_POST['21']; $totyve = $_POST['22']; $tretyve = $_POST['23']; $firetyve = $_POST['24']; $femtyve = $_POST['25']; $sekstyve = $_POST['26']; $syvtyve = $_POST['27']; $ottetyve = $_POST['28']; $nityve = $_POST['29']; mysql_query("UPDATE bruger_mopbasic SET '1' ='$et', '2' = '$to', '3' = '$tre', '4' = '$fire' , '5' ='$fem' , '6' = '$seks' , '7' = '$syv' , '8' = '$otte' , '9' = '$ni' , '10' = '$ti' , '11' = '$elleve' , '12' = '$tolv' , '13' = '$tretten' , '14' = '$fjorten' , '15' = '$femten' , '16' = '$seksten' , '17' = '$sytten' , '18' = '$atten' , '19' = '$nitten' , '20' = '$tyve' , '21' = '$entyve' , '22' = '$totyve' , '23' = '$tretyve' , '24' = '$firetyve' , '25' = '$femtyve' , '26' = '$sekstyve' , '27' = '$syvtyve' , '28' = '$ottetyve' , '29' = '$nityve' WHERE brugernavn = '$bruger'") or die(mysql_error()); FEJL:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''1' ='', '2' = '', '3' = '', '4' = '' , '5' ='' , '6' = '' , '7' = '' , '8' = ''' at line 1
12. november 2007 - 16:56
#6
NY FEJL: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''1' ='', '2' = '', '3' = '', '4' = '' , '5' ='1' , '6' = '' , '7' = '' , '8' = '' at line 1 mine checkboxe: echo "<input name=\"5\" type=\"checkbox\" id=\"5\" value=\"1\">"; som du kan se fanger den godt nok værdien i femmeren. som og var den eneste jeg hakkede af.. jeg vil gerne have en unchekked til at være = 0. tror også det er derfor den brokker sig?
12. november 2007 - 18:54
#7
Jeg vil mene, at du ikke skal bruge apostroffer, når du sætter dine felter: Altså sådan som du gør kl. 16.19.45 eller hvis du sætter de mange variabler som kl. 16.38.14 skal du gøre sådan her: mysql_query("UPDATE bruger_mopbasic SET 1 ='$et',..... Jeg går ud fra, at du skal updatere nogle eksisterende felter, altså den/de poster, hvor feltet brugernavn = $bruger. Hvis der ikke er overensstemmelse, vil der jo ikke ske nogen opdatering. Det kan være at din kode kl.16.19.45 er korrekt.
12. november 2007 - 23:21
#8
Jeg mener ikke, at du kan adressere felterne på en UPDATE som et tal. I PHP kan du adressere de enkelte felter som elementer i et array (enten via et numerisk index, sådan som du gør, eller som et navngivet element), men den går så vidt jeg ved ikke i SQL. Prøv i stedet at skrive feltnavnene fuldt ud. Altså noget i retning af: UPDATE bruger_mopbasic SET Navn = '$et', By ='$to', Postnummer ='$tre' Jeg ved selvfølgelig ikke hvad dine feltnavne er, så det er bare eksempler - du ved jo nok selv hvordan de er navngivet. Teoretisk set kan du selvfølgelig have navngivet felterne numerisk, men det tror jeg er ret usandsynligt.
13. november 2007 - 08:43
#9
1. Før du eksekverer en forspørgsel, er det altid en god ide at skrive sql-stringen ud først 2. Som kjulius er inde på tror jeg heller ikke det er "lovligt" at starte et feltnavn med tal. Du kan evt sætte ` om dine feltnavne 3. Har altid været tilhænger af at separere HTML og PHP og variabler. Det giver et bedre overblik. Eks. mysql_query("UPDATE bruger_mopbasic SET `1` ='". $et ."', `2` = '". $to ."'...
13. november 2007 - 09:34
#10
<?php echo "<form name=\"1\" method=\"post\" action=\"forside.php?side=manual\"><input name=\"submit\" type=\"submit\" class=\"button\" id=\"submit\" value=\"Gem\">"; $bruger = $_SESSION[brugernavn]; if(isset($_POST['submit'])) { $et = $_POST['1']; $to = $_POST['2']; $tre = $_POST['3']; $fire = $_POST['4']; $fem = $_POST['5']; $seks = $_POST['6']; $syv = $_POST['7']; $otte = $_POST['8']; $ni = $_POST['9']; $ti = $_POST['10']; $elleve = $_POST['11']; $tolv = $_POST['12']; $tretten = $_POST['13']; $fjorten = $_POST['14']; $femten = $_POST['15']; $seksten = $_POST['16']; $sytten = $_POST['17']; $atten = $_POST['18']; $nitten = $_POST['19']; $tyve = $_POST['20']; $entyve = $_POST['21']; $totyve = $_POST['22']; $tretyve = $_POST['23']; $firetyve = $_POST['24']; $femtyve = $_POST['25']; $sekstyve = $_POST['26']; $syvtyve = $_POST['27']; $ottetyve = $_POST['28']; $nityve = $_POST['29']; mysql_query("UPDATE bruger_mopbasic SET et ='". $et ."', to = '". $to ."', tre = '". $tre ."', fire = '". $fire ."' , fem = '". $fem ."' , seks = '". $seks ."' , syv = '". $syv ."' , otte = '". $otte ."' , ni = '". $ni ."' , ti = '". $ti ."' , elleve = '". $elleve ."' , tolv = '". $tolv ."' , tretten = '" .$tretten ."' , fjorten = '" .$fjorten ."' , femten = '". $femten ."' , seksten = '". $seksten ."' , sytten = '". $sytten ."' , atten = '". $atten ."' , nitten = '". $nitten ."' , tyve = '". $tyve ."' , entyve = '". $entyve ."' , totyve = '". $totyve ."' , tretyve = '". $tretyve ."' , firetyve = '". $firetyve ."' , femtyve = '". $femtyve ."' , sekstyve = '". $sekstyve ."' , syvtyve = '". $syvtyve ."' , ottetyve = '". $ottetyve ."' , nityve = '". $nityve ."' WHERE brugernavn = '" .$bruger. "'") or die(mysql_error()); } else { $sql = mysql_query("SELECT * FROM bruger_mopbasic WHERE brugernavn = '$bruger' ") or die(mysql_error()); ?> <?php while($data = mysql_fetch_array($sql)) { $et = $data[et]; $to = $data[to]; $tre = $data[tre]; $fire = $data[fire]; $fem = $data[fem]; $seks = $data[seks]; $syv = $data[syv]; $otte = $data[otte]; $ni = $data[ni]; $ti = $data[ti]; $elleve = $data[elleve]; $tolv = $data[tolv]; $tretten = $data[tretten]; $fjorten = $data[fjorten]; $femten = $data[femten]; $seksten = $data[seksten]; $sytten = $data[sytten]; $atten = $data[atten]; $nitten = $data[nitten]; $tyve = $data[tyve]; $entyve = $data[entyve]; $totyve = $data[totyve]; $tretyve = $data[tretyve]; $firetyve = $data[firetyve]; $femtyve = $data[femtyve]; $sekstyve = $data[sekstyve]; $syvtyve = $data[syvtyve]; $ottetyve = $data[ottetyve]; $nityve = $data[nityve]; if($et == "0"){ echo "<input name=\"1\" type=\"checkbox\" id=\"1\" value=\"1\">"; } else{ echo "<img src=\"done.gif\" border=\"0\">"; } ?> osv... samme fejl :(
13. november 2007 - 09:35
#11
Men du sætter jo heller ikke ` om dine feltnavne.
13. november 2007 - 09:36
#12
shift + tasten ved siden af spørgsmålstegnet og plustegnet.
13. november 2007 - 09:50
#13
Great så virker det, har dog lige et spm mere. giver ekstra point hvis det er det der driver dig :) har du en idé til hvordan jeg kun opdatere de felter der er hakket af? eller i hvert fald indsætter et 1 der hvor der allerede står et...
13. november 2007 - 10:25
#14
Tror ikke jeg er helt med. Men denne sætter et 1 hvis den er checket (checkbox), ellers et 0. $et = (isset($data['et'])? 1 : 0);
13. november 2007 - 10:25
#15
jeg har fundet ud af det :) bare smid et svar
13. november 2007 - 10:28
#16
Ellers tak, samler ikke på point ;o)
15. november 2007 - 11:15
#17
nogen andre der har bidraget der vil have dem?
15. november 2007 - 11:20
#18
Nej tak - ellers tak :-))
17. november 2007 - 21:35
#19
så lukker jeg :)
Computerworld tilbyder specialiserede kurser i database-management