At 07:25 AM 11/29/02, angelo.rigo@xxxxxxxxx wrote:
I have the folowing two php?s to delete records from my database wich is
an event database,
it works typing the id field and clicking delete
I would like to put checkboxes in more than one record at time to delete
then. To make my script more advanced.
How can it be done?
i think i could put a checkbox with the default value "off (or 0)" and make
the delete.php delete the record with the checkbox with value "on (or 1)",
but the details to do this i need to discover
someone has passed by this situation, and could help me?
<?php
$db = pg_connect("dbname=thedb user=theuser");
$query = "SELECT * FROM thetable";
$result = pg_exec($db, $query);
if (!$result) {printf ("ERROR"); exit;}
$numrows = pg_numrows($result);
$row=0;
printf ("<table border=1>
");
printf ("<tr
bgcolor='#66CCFF'><td><b>Id</b></td><td><b>City</b></td><td><b>state</b></td><td><b>Location</b></td><td><b>Day</b></td><td><b>Month</b></td><td><b>Time</b></td><td><b>Event</b></td></tr>");
do
{
$myrow = pg_fetch_row ($result,$row);
printf ("<tr
bgcolor='$bgcolor'><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>
",$myrow[0], $myrow[1], $myrow[2], $myrow[3], $myrow[4], $myrow[5],
$myrow[6],$myrow[7]);
$row++;
}
while ($row < $numrows);
printf ("</table><br>
");
pg_close($db);
?>
Type the id to be deleted.
<form action="delete.php" method="post">
ID to Delete : <input type="text" name="id" size="4" length="4" value=""><br>
<input type="submit" name="submit" value="Deletar">
<input type="reset" name="reset" value="Limpar">
</form>
Above is the delete.php
<?php
$db = pg_connect("dbname=thedb user=theuser");
$query = "DELETE FROM thetable where id='$id'";
$result = pg_exec($db, $query);
if (!$result) {printf ("ERROR"); exit;}
printf ("<b>Deleted with sucess!</b>");
pg_close($db);
?>
Checkbox doesn't work like other form elements. Other form elements always
get returned. Checkbox ony gets sent back when it is checked. Therefore,
make the value of the checkbox the value of id you want deleted, make it's
name an array like id[] instead of simply id.
Then your delete code will look something like:
$id = $HTTP_POST_VARS[id];
for( $n=0; $n < count($id); $n++ ) {
if( strlen($id[$n])>0 ) {
$sql="DELETE from thetable WHERE id='" . $id[$n] ."'";
pg_exec( $sql );
}
}