PDA

Bekijk Volledige Versie : database/sql werking vraagje



Bigbuddha
21/01/04, 11:45
Ik heb 2 tabellen(actors, movies) gekoppeld door tabel act_mov.

op mijn movie edit pagina heb ik twee (multiselect)selectboxen.
Links de acteurs die niet in de film zitten en rechts de acteurs wil aan
de film gekoppeld(SQL queries).

Ik kan met javascript acteurs van de ene naar de andere switchen.
Bij de submit van het form vang ik dmv js alle acteurs(de id's) op in
een hidden var "actorList" geschijden door een comma.
Op de verwerkings pagina gan ik zo een array maken waar alle acteurs
inzitten die bij de film moeten horen. Ook nieuwe.

Hoe los ik dit database gewijs op?
Nu verwijder ik eerst alle koppelingen in act_mov met mov_id = de
betreffende id. Om dan aan de hand van de Array opnieuw alle koppelingen
te maken. Dan heb ik alle nieuwe er ook bij.

Dit werkt, maar omslachtig. Is er een manier waarom ik met behulp van
SQL/PHP niet eerst alle koppelingen van de film moet wegdoen om daarna
toch opnieuw dezelfde koppeling records te creeren met eventueel enkele
nieuwe.

'k hoop dat het duidelijk is.

thanks.

--
Bigbuddha
www.bigbuddha.be

Daniel Tryba
21/01/04, 19:30
Bigbuddha <mail_news@bigbuddha.be> wrote:
[knip]
> Dit werkt, maar omslachtig. Is er een manier waarom ik met behulp van
> SQL/PHP niet eerst alle koppelingen van de film moet wegdoen om daarna
> toch opnieuw dezelfde koppeling records te creeren met eventueel enkele
> nieuwe.

Waarom is het omslachtig? Hun heb je een correcte update met slechts 2
sql commandos!

Hoe wil je immers constateren of er enkele acteurs gedelete worden?

Een alternatief is om in een sessie een "voor" array te hebben en na de
submit te verglijken met het "na" array. Aan de hand van de verschillen
zou je de benodigde entrie kunnen update/toevoegen/deleten.

--

Daniel Tryba

Inca
21/01/04, 20:30
Bigbuddha wrote:
> Nu verwijder ik eerst alle koppelingen in act_mov met mov_id = de
> betreffende id. Om dan aan de hand van de Array opnieuw alle
> koppelingen te maken. Dan heb ik alle nieuwe er ook bij.
>
> Dit werkt, maar omslachtig. Is er een manier waarom ik met behulp van
> SQL/PHP niet eerst alle koppelingen van de film moet wegdoen om daarna
> toch opnieuw dezelfde koppeling records te creeren met eventueel
> enkele nieuwe.

Is er een praktisch bezwaar, traag bv? Je kunt het op verschillende manieren
anders doen maar qua performance maakt het waarschijnlijk niet veel uit,
tenzij je een hele langzame database-verbinding hebt. Als php en database op
de zelfde computer draaien is het volgens mij nauwelijks een probleem.
Je kunt overigens het verwijderen in 1 keer doen (delete from act_mov where
mov_id in(lijst met id's))

Als je het echt anders wilt doen dan zou je een lijstje aan kunnen maken van
de 'oude' id's en de nieuwe (een hidden variabele) die je meegeeft met het
formulier. Met de array-functies van php kun je dan je lijst opschonen,
zodat je een set met slechts de nieuwe id's overhoudt.
--
Inca
JA - Wel liberalisatie stroomnet
NEE - Geen stroom
http://www.poldermodelstickers.nl/