Avatar billede svelmoe Nybegynder
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
Avatar billede michael_stim Ekspert
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.
Avatar billede svelmoe Nybegynder
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
Avatar billede svelmoe Nybegynder
12. november 2007 - 16:02 #3
nårh ja noget med SET 1 = $et eller sådan noget ?
Avatar billede svelmoe Nybegynder
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
Avatar billede svelmoe Nybegynder
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
Avatar billede svelmoe Nybegynder
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?
Avatar billede nemlig Professor
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.
Avatar billede kjulius Novice
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.
Avatar billede michael_stim Ekspert
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 ."'...
Avatar billede svelmoe Nybegynder
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 :(
Avatar billede michael_stim Ekspert
13. november 2007 - 09:35 #11
Men du sætter jo heller ikke ` om dine feltnavne.
Avatar billede michael_stim Ekspert
13. november 2007 - 09:36 #12
shift + tasten ved siden af spørgsmålstegnet og plustegnet.
Avatar billede svelmoe Nybegynder
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...
Avatar billede michael_stim Ekspert
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);
Avatar billede svelmoe Nybegynder
13. november 2007 - 10:25 #15
jeg har fundet ud af det :) bare smid et svar
Avatar billede michael_stim Ekspert
13. november 2007 - 10:28 #16
Ellers tak, samler ikke på point ;o)
Avatar billede svelmoe Nybegynder
15. november 2007 - 11:15 #17
nogen andre der har bidraget der vil have dem?
Avatar billede nemlig Professor
15. november 2007 - 11:20 #18
Nej tak - ellers tak :-))
Avatar billede svelmoe Nybegynder
17. november 2007 - 21:35 #19
så lukker jeg :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester