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?
Warning: array_map() [function.array-map]: Argument #2 should be an array in C:\wamp\www\edu\admin\leerling.php on line 87
Warning: implode() [function.implode]: Invalid arguments passed in C:\wamp\www\edu\admin\leerling.php on line 87
Er zijn 5 leerlingen verwijderd uit de database.
Ark? kun je even je scriptje in posten / zippen ? ik wil even kijken hoe jij het doet...
Nee dat is niet mogelijk ^^.
Wat wel mogelijk is, is dat ik een voorbeeld voor je gemaakt heb.
<?PHP
# Errors laten zien
error_reporting(E_ALL);
ini_set('display_errors', 1);
# Connectie met je database maken
require_once '....';
# Error is false
$Error = false;
# Array voor de berichten
$Message = array();
# Kijken of er gepost wordt
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
# Kijken of checkbox niet leeg is
if(empty($_POST['delete']))
{
# Geen checkbox aangevinkt
$Message[] = 'Selecteer A.U.B een checkbox.';
# Error is true
$Error = true;
}
# Kijken of error false is
if($Error == false)
{
# Query uitvoeren
$aQuery =
"
DELETE FROM
gebruikers
WHERE
id
IN
(
" . implode(', ', array_map('intval', $_POST['delete'])) . "
)
";
# Resultaat van de query
$aResult = mysql_query($aQuery);
# Kijken of de query is gelukt
if(!$aResult)
{
# Fout opgetreden in de query
$Message[] = 'Er is een fout opgetreden, de fout is: '.mysql_error();
}
else
{
# Gebruiker(s) succesvol verwijderd
$Message[] = 'Gebruiker(s) succesvol verwijderd';
}
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Checkbox Delete</title>
</head>
<body>
<h3>Gebruikers Verwijderen</h3>
<?PHP
# Kijken of er berichten zijn
if(!empty($Message))
{
# Berichten laten zien
foreach($Message as $Msg)
{
echo $Msg.'<br/>';
}
}
# Query uitvoeren
$bQuery =
"
SELECT
id,
username
FROM
gebruikers
ORDER BY
id
DESC
";
# Resultaat van de query
$bResult = mysql_query($bQuery);
# Kijken of de query is gelukt
if(!$bResult)
{
# Fout opgetreden in de query
$Message[] = 'Er is een fout opgetreden, de fout is: '.mysql_error();
}
else
{
# Kijken of er wel gebruikers zijn
if(mysql_num_rows($bResult) == 0)
{
# Geen gebruikers in de database
$Message[] = 'Er staan nog geen gebruikers in de database.';
}
else
{
# Begin formulier en tabel
echo '<form id="form1" name="form1" method="post" action="">';
echo '<table width="300" border="0">';
# While loop uitvoeren om alle gebruikers te laten zien
while($Row = mysql_fetch_assoc($bResult))
{
echo '<tr>
<td><strong>ID</strong></td>
<td><strong>Gebruiker</strong></td>
<td><strong>Verwijder</strong></td>
</tr>
<tr>
<td>'.$Row['id'].'</td>
<td>'.$Row['username'].'</td>
<td><input type="checkbox" name="delete[]" id="delete[]" value="'.$Row['id'].'" /></td>
</tr>
';
}
# Formulier, tabel sluiten en verwijder knop laten zien
echo '<tr><td colspan="3"><input type="submit" name="button" id="button" value="Verwijder" /></td></tr>';
echo '</table>';
echo '</form>';
}
}
?>
</body>
</html>
Lees de code goed door en zorg dat je er iets van op steekt !
[color=red]Let op:[/color] pas zodanig de code aan naar jouw wens.
MOOI, weer wat geleerd en werkend gekregen. Ik vraag me alleen nog af hoe ik het beste de insert query kan doen. Je kunt meerdere rijen tegelijk invoegen maar hoe kun je dat doen met selectbox?
Oke. nou ik krijg de andere knoppen weer niet werkend.
Hoe kan ik dat het beste doen? Ik wil dat je op de submit knop verwijderen drukt dat die dan de delete query doet op alle aangevinkte checkboxes en bij blokkeren weer een andere query op alle rijen...