Avatar billede baitianlong Nybegynder
18. august 2004 - 16:52 Der er 7 kommentarer og
2 løsninger

SQL: Hvis ikke feltet findes så INSERT ellers UPDATE

Min titel siger næsten det hele:

Jeg har denne sql-syntax

mysql_query("UPDATE newsletter SET tekst='$tekst' WHERE quarter='$quarter' AND aar='$year'");

men det kræver jo at der er en post med quarter og year som angivet. Hvis der nu ikke er det, skal den lave en.

:)
Avatar billede tortur Nybegynder
18. august 2004 - 17:00 #1
Forstår ikke helt dit spørgsmål?
Kan du ikke prøve at forklare det på en lidt bedre måde?
Avatar billede detox Nybegynder
18. august 2004 - 17:01 #2
Fra og med version 4.1 kan My SQL lave en INSERT/UPDATE, men i tidligere versioner er du nødt til at tjekke om den findes og derefter lave INSERT eller UPDATE.
Avatar billede detox Nybegynder
18. august 2004 - 17:05 #3
Altså i den her stil:

if (mysql_num_rows(mysql_query("SELECT tekst FROM newsletter WHERE quarter='$quarter' AND aar='$year'")>0) {
  // Lav UPDATE
} else {
  // Lav INSERT
}
Avatar billede baitianlong Nybegynder
18. august 2004 - 17:06 #4
Jeg har prøvet sådan her, men det virker ikke:

if(mysql_query("SELECT * FROM newsletter WHERE quarter='$quarter' AND aar='$year'")) {
    mysql_query("UPDATE newsletter SET tekst='$tekst' WHERE quarter='$quarter' AND aar='$year'");
} else {
    mysql_query("INSERT INTO newsletter(tekst, quarter, aar) VALUES('$tekst', '$quarter', '$year')");
}
Avatar billede baitianlong Nybegynder
18. august 2004 - 17:06 #5
ok, jeg prøver lige din version :)
Avatar billede stalle Nybegynder
18. august 2004 - 17:10 #6
if(mysql_query("SELECT * FROM newsletter WHERE quarter='$quarter' AND aar='$year'")>0) {
    mysql_query("UPDATE newsletter SET tekst='$tekst' WHERE quarter='$quarter' AND aar='$year'");
} else {
    mysql_query("INSERT INTO newsletter(tekst, quarter, aar) VALUES('$tekst', '$quarter', '$year')");
}
Avatar billede baitianlong Nybegynder
18. august 2004 - 17:15 #7
detox -> Igen var du smuk. Den virker fint ! Så jeg smider points efter dig, når du svarer.

stalle -> Din virker sikkert også, men detox kom først, så 'sorry' :)
Avatar billede detox Nybegynder
18. august 2004 - 17:25 #8
Velbekommen
Avatar billede dennismp Nybegynder
18. august 2004 - 17:57 #9
MySQL har også REPLACE. Syntaxen er meget lig med INSERT, men forskellen er, at vis nøglen findes, så opdaterer den - ellers insert'er den.

http://dev.mysql.com/doc/mysql/en/REPLACE.html
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