Toon posts:

[ASP] opvullen lege gaten

Pagina: 1
Acties:

Verwijderd

Topicstarter
hoi,
ben bezig een functie te maken die het volgende moet doen:
in formulier 6 velden genaamd titel1 tm titel6/ Deze zijn vrij in te vullen. Wenselijke situatie dat in oplopende volgorde informatie geplaatst wordt. Maar het is niet verplicht alle 6 de velden in te vullen.
Nu wil ik voorkomen dat er lege gaten ontstaan als er bijvoorbeeld een titelveld wordt overgeslagen (titel1, titel3 en titel4 zijn ingevuld, dan wil ik tijdens het opslaan de informatie van titel4 automatisch naar titel3 verplaatsen.
Na de submit lees ik alle titelvelden uit voordat ik ze in de database zet.
Hoe kan ik ongeacht te weten welke velden wel en niet zijn ingevuld het in de juiste volgorde in de db opslaan. De tabel waar het wordt opgeslagen heeft 6 kolommen.

Nu dacht ik aan een dubbele array. De eerste array(1,2,3,4,5,6) is de te gebruiken volgorde van de titelvelden de tweede array de velden (nummer uit benaming gestript) array(1,3,4)
Wat ik nu wil is de waarden vergelijken met elkaar in de volgorde dat ze in de array zitten
1:1 klopt, waarde opslaan in kolom 1
2:3 klopt niet, verander de waarde 3 in 2, waarde opslaan in kolom 2
3:4 klopt niet, vernader de waarde 4 in 3,waarde opslaan in kolom 3
theoretisch moet dit kloppen, maar weet niet waar te beginnen met scripting. Kan iemand mij op weg helpen?

  • TRON
  • Registratie: September 2001
  • Laatst online: 14-04 22:16
't Kan op zich simpel. 'k Weet niet in hoeverre het ondersteund wordt op een nettere manier als je met ASP werkt, maar denk eens aan:

- loop de array door
- als de waarde Null is, skip deze dan en voeg niets toe aan de database
- doe een tellertje++
- blijf loopen totdat je er door bent.

Leren door te strijden? Dat doe je op CTFSpel.nl. Vraag een gratis proefpakket aan t.w.v. EUR 50 (excl. BTW)


  • zwippie
  • Registratie: Mei 2003
  • Niet online

zwippie

Electrons at work

pseudocode (niks getest):
code:
1
2
3
4
5
6
int last = 0;
for (i = 0; i < input.length; i++) {
    if (input[i] != "") {
        output[last++] = input[i];
    }
}

In de input array staan de waarden die de gebruiker heeft ingevoerd. Er wordt plek voor plek gekeken of er een waarde is ingevuld. Zo ja, dan wordt de waarde gekopieerd naar de volgende lege plek in de output array. De volgende lege plek hou je bij in de variabele last, deze bevat na de loop dus het aantal elementen in output. Het enige waar je nog voor moet zorgen is dat je output-array groot genoeg is.

In PHP zou je dit veel simpeler kunnen doen met bv array_diff, maar ik ken geen ASP en weet dus niet of je daar zo'n soort functie tot je beschikking hebt.

How much can you compute with the "ultimate laptop" with 1 kg of mass and 1 liter of volume? Answer: not more than 10^51 operations per second on not more than 10^32 bits.


Verwijderd

Topicstarter
nee die heb je niet in asp. Maar het idee is wel goed, ga kijken hoe ver ik kom.