944,078 Members | Top Members by Rank

Ad:
  • PHP Discussion Thread
  • Unsolved
  • Views: 16652
  • PHP RSS
You are currently viewing page 1 of this multi-page discussion thread
Dec 6th, 2006
0

How to delete using checkboxes

Expand Post »
Hi Everyone
I'm fairly new to PHP and struggling a bit. I'm trying to delete some records from MySQL via php and checkboxes my code is below if anyone can help me. Thanks in advance
[PHP]
<?php
include("config.php");
include("contentdb.php");

$id= $_POST["id"];
$question= $_POST["question"];
$opt1= $_POST["opt1"];
$opt2= $_POST["opt2"];
$opt3= $_POST["opt3"];
$answer= $_POST["answer"];

$Query="INSERT into qtable (id,question,opt1,opt2,opt3,answer)
values ('$id','$question', '$opt1' , '$opt2', '$opt3' , '$answer')";

$result = mysql_query($Query) ;
if (!$result)
{
print ("Your information has been passed into current database!<BR>\n");
} else {
print ("The query could not be executed for inserting your data!<BR>");
}
$query = "SELECT * FROM qtable ORDER BY id";
$result = mysql_query($query)
or die ("Couldn't execute query for collecting your data.");

/* Display results in a table */
print ("<TABLE BORDER=1 WIDTH=\"90%\" CELLSPACING=2 CELLPADDING=2 ALIGN=CENTER>\n");
print ("<TR ALIGN=CENTER onmouseover=blue>\n");
print ("<TD ALIGN=CENTER ><b><font color=red>No</font></TD>\n");
print ("<TD ALIGN=CENTER ><b><font color=red>Question</font></TD>\n");
print ("<TD ALIGN=CENTER ><b><font color=red>Option 1</font></TD>\n");
print ("<TD ALIGN=CENTER ><b><font color=red>Option 2</font></TD>\n");
print ("<TD ALIGN=CENTER ><b><font color=red>Option 3</font></TD>\n");
print ("<TD ALIGN=CENTER ><b><font color=red>Answer</font></TD>\n");
print ("<TD ALIGN=CENTER ><font color=blue size=2>Del/Edit</font></TD>\n");
print ("</TR>\n");
if ($result = mysql_query($query)) { // see if any rows were returned
if (mysql_num_rows($result) > 0) {

while ($row = mysql_fetch_array($result)) {
extract($row);
print ("<TR ALIGN=CENTER >\n");
print( "<TD ALIGN=CENTER >$row[id]</TD>\n");
print ("<TD ALIGN=CENTER >$row[question]</TD>\n");
print ("<TD ALIGN=CENTER >$row[opt1]</TD>\n");
print ("<TD ALIGN=CENTER >$row[opt2]</TD>\n");
print ("<TD ALIGN=CENTER >$row[opt3]</TD>\n");
print ("<TD ALIGN=CENTER >$row[answer]</TD>\n");

print ("<TD ALIGN=CENTER ><input type=checkbox name=delete value=\"$id\"></font></TD>\n");
print ("</tr>");
}
mysql_free_result($result);
} else {
echo "Error in query: $query. ".mysql_error(); // print error message
}
}
print ("</TABLE>\n");
echo "<input type=submit value=Delete >&nbsp";

$id= $_POST["id"];
if (isset($Delete)) {

$toDelete = implode(', ', $_POST['id']);
$query = "DELETE FROM `qtable` WHERE ID IN ($toDelete)";
if(mysql_query($query)) {
echo 'Hooray, the filthy rows were deleted';
}
else echo 'Bad luck schmuck<br>' . mysql_error();
}
// close connection
mysql_close($db);
?>
[/PHP]
Similar Threads
Reputation Points: 10
Solved Threads: 0
Newbie Poster
zed420 is offline Offline
6 posts
since Dec 2006
Dec 6th, 2006
0

Re: How to delete using checkboxes

Ok, what is your problem, exactly?

You should always quote your HTML properly. Don't skip out on the double quotes because PHP's echo/print statements don't play nice. Escape your double quotes with \"

I had problems with editing values from checkboxes because I skipped out on the quotes.
Reputation Points: 23
Solved Threads: 23
Posting Pro in Training
Puckdropper is offline Offline
494 posts
since Jul 2004
Dec 6th, 2006
0

Re: How to delete using checkboxes

Sorry I didn't explain very well, the problem is nothing happens when I'm pressing the Delete button. It doesn't delete, laugh or cry (lol)
Cheers
Reputation Points: 10
Solved Threads: 0
Newbie Poster
zed420 is offline Offline
6 posts
since Dec 2006
Dec 7th, 2006
0

Re: How to delete using checkboxes

Well unless I am beening really blind (which is not unusal as I am only on my second coffee of the day).

You do not seem to have a form tag, so when you are clicking the submit button the browser has no idea what to do. I guess that you are trying to load the page on to itself so try wrapping the input fields in

<form method="post" action="<?= $_SERVER['PHP_SELF']?>\" >
</form>

Also i am not sure wheather isset($Delete) will work. you will need to use isset($_POST['submit']) (and add the value name="submit" to your submit button otherwise the $_POST key is not set.

After that we are on to the delete query itself. $_POST['id'] exists but i do not think that it is the value that you want because the checkbox is named delete. so you will want to referance $_POST['delete'].

You also need to reoder you script I think so that the delete is done before you out put the form other wise it will take an extra reload to view the changes.
Last edited by UrbanSky; Dec 7th, 2006 at 7:55 am.
Reputation Points: 10
Solved Threads: 4
Light Poster
UrbanSky is offline Offline
42 posts
since Oct 2006
Dec 7th, 2006
0

Re: How to delete using checkboxes

Thanks a million Chuck I'll do this, see how it goes.
Reputation Points: 10
Solved Threads: 0
Newbie Poster
zed420 is offline Offline
6 posts
since Dec 2006
Dec 8th, 2006
0

Re: How to delete using checkboxes

Just tried every thing what you suggested but still no joy.
Reputation Points: 10
Solved Threads: 0
Newbie Poster
zed420 is offline Offline
6 posts
since Dec 2006
Dec 15th, 2006
0

Re: How to delete using checkboxes

Click to Expand / Collapse  Quote originally posted by zed420 ...
Just tried every thing what you suggested but still no joy.
<?
switch($action)
{
case 'delete':
$checklist = $_POST["checkme"];
for($i=0; $i<count($checklist); $i++)
{
echo "print";
$remove = $checklist[$i];
$query=mysql_query("DELETE FROM materialmaster WHERE material_code='$remove'");
}
if(!$query){
echo "failed connection";
}
else
header("location:showmm.php");
break;
}

// declare the checkbox as an array in the table
<td><input type="checkbox" name="<?='checkme[]';?>" value="<?php echo $row["material_code"];?>">
</Td>
//where $row is
$sql="SELECT * FROM materialmaster order by material_code";
$result=mysql_query($sql);
$row=mysql_fetch_array($result)

You need to replace the table,field names etc.... the catch is that checkbox is an array.hope it solves
Reputation Points: 10
Solved Threads: 0
Light Poster
php_coder is offline Offline
34 posts
since Dec 2006
Dec 15th, 2006
0

Re: How to delete using checkboxes

Thanks coder I'm gonna have a go at your code.
Reputation Points: 10
Solved Threads: 0
Newbie Poster
zed420 is offline Offline
6 posts
since Dec 2006
Dec 16th, 2006
0

Re: How to delete using checkboxes

Click to Expand / Collapse  Quote originally posted by zed420 ...
Thanks coder I'm gonna have a go at your code.
Hi
Was that useful?
Reputation Points: 10
Solved Threads: 0
Light Poster
php_coder is offline Offline
34 posts
since Dec 2006
Dec 16th, 2006
0

Re: How to delete using checkboxes

I've tried it mate didn't quite work but some thing did work here it is
Quote ...
<?php
include("config.php");
include("contentdb.php");
if($_POST['delete']) {
foreach($_POST as $id) { // This will loop through the checked checkboxes
mysql_query("DELETE FROM qtable WHERE id='$id'"); // This deletes the record from the database
}
}
$errorString = "";
$id= $_POST["id"];
$question= $_POST["question"];
if (empty($question))
$errorString =$errorString."<br>Question Field cannot be blank.";
$opt1= $_POST["opt1"];
if (empty($opt1))
$errorString =$errorString."<br>Option 1 Field cannot be blank.";
$opt2= $_POST["opt2"];
if (empty($opt2))
$errorString =$errorString."<br>Option 2 Field cannot be blank.";
$opt3= $_POST["opt3"];
if (empty($opt3))
$errorString =$errorString."<br>Option 3 Field cannot be blank.";
$answer= $_POST["answer"];
if (empty($answer))
$errorString =$errorString."<br>Answer Field cannot be blank.";
if (!empty($errorString))
{
echo "There were some errors :<br>". $errorString;
}
else //Otherwise, insert the data into database
{
}
$Query="INSERT into qtable (id,question,opt1,opt2,opt3,answer)
values ('$id','$question', '$opt1' , '$opt2', '$opt3' , '$answer')";
$result = mysql_query($Query) ;
if (!$result)
{
print ("Your information has been passed into current database!<BR>\n");
} else {
print ("The query could not be executed for inserting your data!<BR>");
}
$query = "SELECT * FROM qtable ORDER BY id";
$result = mysql_query($query)
or die ("Couldn't execute query for collecting your data.");

?>
<form name="action" id="action" method="post" action="<?=$_SERVER['PHP_SELF']?>">
<?
/* Display results in a table */
print ("<TABLE BORDER=1 WIDTH=\"90%\" CELLSPACING=2 CELLPADDING=2 ALIGN=CENTER>\n");
print ("<TR ALIGN=CENTER onmouseover=blue>\n");
print ("<TD ALIGN=CENTER ><b><font color=red>No</font></TD>\n");
print ("<TD ALIGN=CENTER ><b><font color=red>Question</font></TD>\n");
print ("<TD ALIGN=CENTER ><b><font color=red>Option 1</font></TD>\n");
print ("<TD ALIGN=CENTER ><b><font color=red>Option 2</font></TD>\n");
print ("<TD ALIGN=CENTER ><b><font color=red>Option 3</font></TD>\n");
print ("<TD ALIGN=CENTER ><b><font color=red>Answer</font></TD>\n");
print ("<TD ALIGN=CENTER ><font color=blue size=2>Del/Edit</font></TD>\n");
print ("</TR>\n");
if ($result = mysql_query($query)) { // see if any rows were returned
if (mysql_num_rows($result) > 0) {
while ($row = mysql_fetch_array($result)) {
extract($row);
print ("<TR ALIGN=CENTER >\n");
print( "<TD ALIGN=CENTER >$row[id]</TD>\n");
print ("<TD ALIGN=CENTER >$row[question]</TD>\n");
print ("<TD ALIGN=CENTER >$row[opt1]</TD>\n");
print ("<TD ALIGN=CENTER >$row[opt2]</TD>\n");
print ("<TD ALIGN=CENTER >$row[opt3]</TD>\n");
print ("<TD ALIGN=CENTER >$row[answer]</TD>\n");
?>
<TD ALIGN=CENTER ><input type="checkbox" name="<?=$row[id]?>" id="<?=$row[id]?>" value="<?=$row[id]?>"/></TD>
<?php
print ("</tr>");
}
mysql_free_result($result);
} else {
echo "Error in query: $query. ".mysql_error(); // print error message
}
}
print ("</TABLE>\n");
?>
<center><input type="submit" name="delete" id="delete" value="Delete Selected" /></center>
<?
echo "</form><br>\n";
// close connection
mysql_close($db);
?>
Reputation Points: 10
Solved Threads: 0
Newbie Poster
zed420 is offline Offline
6 posts
since Dec 2006

This thread is more than three months old

No one has posted to this discussion for at least three months. Please let old threads die and do not reply to them unless you feel you have something new and valuable to contribute that absolutely must be added to make the discussion complete. Otherwise, please start a new thread in this forum instead.
Message:
Previous Thread in PHP Forum Timeline: Has anyone used this....
Next Thread in PHP Forum Timeline: Loop Problem,plz help





About Us | Contact Us | Advertise | Acceptable Use Policy
Forum Index | Build Custom RSS Feed


Follow us on Twitter


© 2011 DaniWeb® LLC