Dmv. checkboxen wil ik meerdere records willen verwijderen. Ik heb op het internet gezocht maar het grote deel is verouderd en werkt niet naar behoren.

Mijn huidige script:

if(isset($_POST['sub_delete'])) {
$sql = "
    DELETE FROM
        gebruikers
    WHERE
        username = '".$_POST['username']."'
";

if(!$res = mysql_query($sql))
{
    trigger_error(mysql_error().'<br />In query: '.$sql);
}
elseif(mysql_affected_rows() == 0)
{
    echo 'U heeft geen leerlingen geselecteerd';
}
elseif(mysql_affected_rows() == 1)
{
    echo 'Er is 1 leerling verwijderd uit de database.';
}
else
{
    echo 'Er zijn '.mysql_affected_rows().' leerlingen verwijderd uit de database.';
}

}

Zou ik met de huidige query het voor elkaar kunnen krijgen of moet het geheel anders?
Zet je script volgende keer tussen php tags,
Op regel 19 kun je '.mysql_affected_rows().' vervangen door 1.

Voor derest zal hij denk ik wel werken, heb je hem al getest?
Het script werkt ook wel alleen maar op 1 rij per keer terwijl ik meerdere checkboxes aanvink.
Niet getest maar het zou in grote lijnen zo moeten werken.

$users is de array waar al je te verwijderen namen in staan.

De $delete_where komt in plaats van username = '".$_POST['username']."'

[code]
<?php

#| " $delete_where " variable aanmaken voor het opslaan van de lijst met de te verwijderen gebruikers.

$delete_where = "username = '".$users[0]."'";


#| Aantal gebruikers tellen.

$delete_count($users);


#| Alle te verwijderen gebruikers toevoegen.

for($i = 1; $i <= $delete_count; $i++)
{

#| Gebruiker toevoegen.

$delete_where .= " OR username = '".$users[$i]."'";

}

?>
[code]
Even geprobeerd. Werkt niet

De error's:

Notice: Undefined variable: users in *ergensopmijnpc* on line 82

Notice: Undefined variable: delete_count in *ergensopmijnpc* on line 87

Fatal error: Function name must be a string in *ergensopmijnpc* on line 87


Ik gebruik het script zoals hierboven en dit:



$delete_where = $_POST['username'];

hoe ziet je code er nu uit? Ik denk dat je het verkeerd toepast.

<?php

if(isset($_POST['sub_delete'])) {

$delete_where = $_POST['username'];
    
    #| " $delete_where " variable aanmaken voor het opslaan van de lijst met de te verwijderen gebruikers.
    
        $delete_where = "username = '".$users[0]."'";

    
    #| Aantal gebruikers tellen.
    
        $delete_count($users);
    
    
    #| Alle te verwijderen gebruikers toevoegen.
    
        for($i = 1; $i <= $delete_count; $i++)
        {
        
        #| Gebruiker toevoegen.
        
            $delete_where .= " OR username = '".$users[$i]."'";
            
        } 

}
Heren, niet zo moeilijk gaan doen he ^^

<?PHP

$Query =
"
DELETE FROM
tabel
WHERE
veld
IN
(
" . implode(', ', array_map('intval', $_POST['checkboxnaam'])) . "
)
";

?>

Natuurlijk ziet je checkbox er dan zo uit.


<input type="checkbox" name="checkboxnaam[]" id="checkboxnaam[]" value="'.$Row['hierhetid'].'" />


Natuurlijk eerst alle id's ophalen uit de database en fetchen
Waar heb je het mysql gedeelte gelaten nu? en waar is de $users array met alle gebruikers?

$delete_where = $_POST['username']; waar is dat nu weer goed voor?

@ Mr.Ark Dat ziet er leuk uit morgen zelf eens uit proberen.
@ Mark

Waarom moeilijk gaan doen met een for loopje en de array tellen?

Als je het dan op die manier doet gebruik dan gewoon foreach().
:p Weet ik, Het was maar een snel getypt voorbeeld.

Ik tel meestal de waardes in de array voor het weergeven van " x van x aantal rijen verwijderd. "

Reageren