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 Cognizant
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