Avatar billede hyperactive Nybegynder
27. januar 2003 - 11:45 Der er 2 kommentarer og
1 løsning

Synkroniser data i MySQL med formular

Jeg har et problem, som går på opdatering af en række data i en MySQL database udfra en formular....

Det drejer sig om en tabel, der hedder "varianter" og indeholder felterne varenr, stoerrelse og farve.

Når man vil rette en vare, sker dette ved hjælp af en formular. Feltet varenr er et alm. tekstfelt og er ikke noget problem. Feltet stoerrelse er ligeledes et tekstfelt, hvor størrelserne indtastes opdelt af kommaer - f.eks. "small,medium,large" Når de så lægges ind i databasen har jeg opdelt strengen med split funktionen. Farverne angives ved hjælp af checkboxe. Når varen oprettes første gang, dannes der en post for hver størrelse/farve kombination i "varianter" tabellen.

Mit problem er at opdatere databasen, således at hvis feltet stoerrelse f.eks ændres til "small,medium" - ja så skal alle poster, hvor "large" indgår i kombinationen slettes. Derudover skal der tjekkes på farverne - hvis en er markeret i formularen og findes i databasen skal der ikke udføres noget. Hvis den er markeret i formularen og ikke findes i databasen, skal den oprettes. Hvis den ikke er markeret i formularen og findes i databasen, skal den slettes.....

Er der nogen, der kan hjælpe mig med det????
Avatar billede coltau Juniormester
27. januar 2003 - 19:50 #1
Ja - hvis "varianternes" ID i tabellen ikke anvendes som link til andre tabeller er det nemmeste at slette alle varianter først og derefter bruge den eksisterende kode til at oprette dem igen.
Avatar billede hyperactive Nybegynder
27. januar 2003 - 20:17 #2
coltau.... problemet er, at der henvises til variantid i en anden tabel, der hedder ordrelinier
Avatar billede coltau Juniormester
28. januar 2003 - 09:44 #3
Ja - det gør det jo mere besværligt.

jeg tror at der er mange måder at gøre det på.

1. Man kan indlæse alle størrelser i en liste/array og kontrollere dem mod de indtastede størrelser. Hvis størrelsen ikke findes slettes den.

2. Oprette et felt mere i tabellen, der hedder "flag" eller lign. Sætte dette flag = True på alle størrelser med en SQL-sætning og derefter gennemløbe de indtastede størrelser og gøre følgende.

Hvis størrelsen IKKE findes skal den oprettes. (Husk sæt flag = False)
Hvis størrelsen findes ændres værdier i henhold til det indtastede og flag sættes lig false.

Når dette gennemløb er slut kan alle størrelser hvor Flag = True slettes med en SQL-sætning.

Sidstenævnte medtode er også sikkeret hvis der sker fejl i det rettelsen blot kan gentages.

Ingen af ovennævnte metoder tager højde for variantid i ordrelinier.
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
Kurser inden for grundlæggende programmering

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