Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Webprogrammeren & scripting

ASP - Hoe verwijder ik meerdere records uit een tabel?

Johant
7 antwoorden
  • Ik heb op een webpagina een tabel met x (aantal weet ik dus niet) records.

    Ik heb een verwijderpagina gemaakt met achter iedere record een checkbox.

    Onderaan de tabel heb ik een verwijderbutton staan.

    Ik wil nu een willekeurig aantal records aanvinken en dan in één keer verwijderen door op de verwijderbutton te klikken.

    Ik maak een array verwijderen() die 2 mogelijke waardes krijgen:

    "" of "checkbox"

    Nu wil ik dat in de database de records worden verwijdert met de waardes "checkbox".

    Hoe doe ik dit?
  • Als je alle checkboxes dezelfde naam geeft dan krijg je bij een submit de waarden komma-gescheiden terug. En deze kan je dan (na controle op geldigheid natuurlijk) gebruiken in een WHERE .. IN constructie.

    voorbeeld (zonder controle):
    [code:1:503a779419]
    sDeleteThis = request.form("checkbox")
    sQuery = "DELETE FROM table WHERE id IN (" & sDeleteThis & ")"
    [/code:1:503a779419]
  • Ik snap die "where in" statement niet hemaal.

    Ik heb het tot nu als volgt gedaan:

    —–
    [b:4f57f57c47]Tabel_records_verwijderen.asp[/b:4f57f57c47]

    Het aantal records is variabel.
    Om te bepalen hoeveel records er staan laat ik een teller meelopen bij het ophalen van alle records uit de database.
    Dan ken ik deze variabele [b:4f57f57c47]a[/b:4f57f57c47] toe aan een [b:4f57f57c47]sessievariabele("aantalRecords")[/b:4f57f57c47]
    Iedere checkbox krijgt ook een andere naam, namelijk [b:4f57f57c47]"checkbox" & a[/b:4f57f57c47].
    Dit wordt dan dus:

    checkbox1
    checkbox2


    checkboxa

    —–
    [b:4f57f57c47]tabel_recors_verwijderen_verwerken.asp[/b:4f57f57c47]

    Ik haal alle waardes op van de checkboxen, dmv van een loop (dmv de [b:4f57f57c47]sessievariable("aantalRecords").[/b:4f57f57c47]
    Deze waardes ken ik toe aan een array [b:4f57f57c47]verwijderen(a).[/b:4f57f57c47]

    Stel ik heb de volgende array:

    verwijderen(1) = ""
    verwijderen(2) = "checkbox"
    verwijderen(3) = ""
    verwijderen(4) = "checkbox"
    verwijderen(5) = ""
    verwijderen(6) = ""

    De 2e en 4e record moeten dus verwijderd worden.

    En hier zit hem het probleem.
    2e en 4e hoeven niet gelijk te zijn aan Id = 2 en Id = 4

    Hoe los ik dit op?
  • Het probleem is opgelost.

    Ik heb de unieke primary key waarde meegegeven als value voor de checkboxen.

    Ik krijg dan in de verwerkenpagina bijv. de volgende array:

    verwijderen(1) = ""
    verwijderen(2) = ""
    verwijderen(3) = "9"
    verwijderen(4) = ""
    verwijderen(5) = "231"
    verwijderen(6) = ""

    Records 9 en 231 kunnen dus verwijderd worden.

    Dan nog even een loop waarin alleen de verwijderen() met een waarde doorgaan naar de SQL-verwijderen statement.

    E voila.

    Thanx voor de hulp.
  • [quote:9147ba6c1f="Johant"]Ik snap die "where in" statement niet hemaal.
    [/quote:9147ba6c1f]Dan proberen we het even te verduidelijken.
    [quote:9147ba6c1f="Johant"]Iedere checkbox krijgt ook een andere naam, namelijk [b:9147ba6c1f]"checkbox" & a[/b:9147ba6c1f].
    [/quote:9147ba6c1f]Tja, dat kan ook maar dan zal je een andere methode moeten volgen. Die ik overigens persoonlijk minder makkelijk vind (zie ook de p.s.).

    Mijn idee gaat uit van het feit dat als je de checkboxes dezelfde naam geeft, bijv. CB, je alle aangevinkte waarden terugkrijgt als 1 komma-gescheiden string. De value van de checkbox moet dan de primary key uit je tabel zijn (in mijn voorbeeld is dat
  • [quote:412f622f4e="Johant"]Het probleem is opgelost.
    [/quote:412f622f4e]
    aaarrrggghh, en daar kom je nu mee ;)
  • Toch bedankt Annie, ik heb ook weer wat geleerd.
    Je uitleg komt me zeer goed van pas.

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.