Avatar billede celfa Nybegynder
18. maj 2008 - 15:38 Der er 25 kommentarer og
1 løsning

Ret denne SQL sætning

$sql="UPDATE $indhold(indhold, title, description, keywords)VALUES('$indhold', '$title', '$description', '$keywords')" "WHERE id=".$_GET['id']."";

Den skal opdatere database ved et pågældende ID, også skal den så opdatere med alle de der parameter. Og jeg har defineret dem. Der er bare en fejl i sætning som jeg ikke kan finde ud af.
Avatar billede arne_v Ekspert
18. maj 2008 - 16:24 #1
Man bruger:

INSERT INTO tabel (felt1, felt2, felt3) VALUES(v1l, val2, val3)

men:

UPDATE tabel SET felt1=val1, felt2=val2, felt3=val3 WHERE felt4=val4
Avatar billede celfa Nybegynder
18. maj 2008 - 16:27 #2
Ja men jeg har jo brugt den sætning jeg skrev, der mangler sikkert bare et tegn eller tegn for meget..
Den sætning burde jo kunne virke?
Avatar billede blackscorpion Nybegynder
18. maj 2008 - 16:39 #3
prøv med $sql="UPDATE $indhold(indhold, title, description, keywords) VALUES('$indhold', '$title', '$description', '$keywords') WHERE id=".$_GET['id'];
Avatar billede celfa Nybegynder
18. maj 2008 - 16:50 #4
Hm. Den indsætter ikke i database, og echoer jeg ser det helt fint ud.
Avatar billede erikjacobsen Ekspert
18. maj 2008 - 16:53 #5
1) Det virker forkert at du skriver $indhold som tabelnavn og som indhold i et felt. Skal det være sådan?

2) Få fejl fra mysql, fx:    mysql_query($sql) or die(mysql_error())
og fortæl hvad den siger.

3) Og iøvrigt har arne_v fat i noget
Avatar billede celfa Nybegynder
18. maj 2008 - 17:21 #6
1. Den er rettet nu, godt set: $sql="INSERT INTO $tbl_name(content, title, description, keywords) VALUES('$content', '$title', '$description', '$keywords') WHERE id=".$_GET['p'];

2. Får denne 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 'reklamer/vandretbanner.php'); ?>

', 'Nyt website DK - Forsiden', 'Siden ind' at line 1
Avatar billede erikjacobsen Ekspert
18. maj 2008 - 17:23 #7
Der står måske en ' i en tekststreng du vil sætte ind? Det er noget der kan forvirre en mysql-server ;)
Avatar billede celfa Nybegynder
18. maj 2008 - 17:30 #8
Nej for jeg prøvede at indsætte et a i alle felterne også siger den:
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 id=1' at line 1
Avatar billede arne_v Ekspert
18. maj 2008 - 17:35 #9
Man kan ikke bruge WHERE i INSERT
Avatar billede celfa Nybegynder
18. maj 2008 - 17:59 #10
så skiftede jeg til update istedet

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 '(content, title, description, keywords) VALUES('<h1 align="center" class="style1' at line 1
Avatar billede celfa Nybegynder
18. maj 2008 - 18:13 #11
prøvede at indtaste et a i hvert felt.

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 '(content, title, description, keywords) VALUES('a', 'a', 'a', 'a') WHERE id=3' at line 1
Avatar billede arne_v Ekspert
18. maj 2008 - 18:23 #12
Man bruger ikke VALUES i UPDATE.
Avatar billede arne_v Ekspert
18. maj 2008 - 18:23 #13
Se syntax 16:24:48
Avatar billede celfa Nybegynder
18. maj 2008 - 19:18 #14
sådan her så?

$sql="UPDATE $tbl_name SET content=$content, title=$title, description=$description, keywords=$keywords WHERE id=$id";
Avatar billede celfa Nybegynder
18. maj 2008 - 19:33 #15
kan man kombinere insert into med where?
Avatar billede celfa Nybegynder
18. maj 2008 - 19:34 #16
noget i den her stil?

$sql="INSERT INTO $tbl_name(content, title, description, keywords) VALUES('$content', '$title', '$description', '$keywords') WHERE id=".$_GET['p']."";
Avatar billede erikjacobsen Ekspert
18. maj 2008 - 19:47 #17
Hvad skulle din INSERT med WHERE betyde?  (Svaret er: nej, det kan man ikke)
Avatar billede celfa Nybegynder
18. maj 2008 - 19:50 #18
Hvad skal jeg så gøre?? Jeg skal indsætte i databasen ud for det pågældende id nummer.
Avatar billede erikjacobsen Ekspert
18. maj 2008 - 19:51 #19
Hvad mener du med det? Giv os et eksempel.
Avatar billede erikjacobsen Ekspert
18. maj 2008 - 19:52 #20
Dit eksempel fra 19:18:19 ser jo fint ud, bortset fra du mangler '...' rundt om tekstfelter, og skal gøre en indsats for de tekststrenge, der indeholder et '
Avatar billede celfa Nybegynder
18. maj 2008 - 20:03 #21
Hej. Jeg er meget glad for din hjælp.

$sql="UPDATE $tbl_name SET content=$content, title=$title, description=$description, keywords=$keywords WHERE id=$id";

Ville du vise mig hvordan jeg gjorde det med at få sat rundt om de felter der indeholder tekst og ' ?

Hilsen Claus.
Avatar billede erikjacobsen Ekspert
18. maj 2008 - 20:14 #22
Det med '...' rundt om er nemt nok:

$sql="UPDATE $tbl_name SET content='$content', title='$title', description='$description', keywords='$keywords' WHERE id=$id";

Og det med at sikre mod tekster, indeholder '-ere kan du måske gøre med fx:

  $content=addslasehs($content);

inden linien med $sql.

Men nu håber jeg da at du bare leger for din egen skyld, og ikke har tænkt dig at lægge det her på nettet til almindeligt brug - du lyder til at vide foruroligende lidt om udvikling af web-applikationer.
Avatar billede erikjacobsen Ekspert
18. maj 2008 - 20:14 #23
Ok da. Jeg mener nok:

  $content=addslashes($content);
Avatar billede celfa Nybegynder
18. maj 2008 - 20:28 #24
Hej erik.

Mange tak. Jeg er næsten lige begyndt på php så det er ren og skær øvelse det her.
Og jo self. leger jeg med det hele. Der er stadig en masse andet der skal laves før jeg får mit endelig resultalt.

Tak for din gode hjælp.

Smid et svar :)
Avatar billede erikjacobsen Ekspert
18. maj 2008 - 21:35 #25
Jeg samler slet ikke på point, tak.

Eet sted at komme videre, er at læse op på "SQL injection" - google kan være din ven ;)
Avatar billede celfa Nybegynder
07. december 2011 - 17:56 #26
Tak for dine hjælp. :)
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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