Jump to content

Recommended Posts

So I recently was tasked with learning some PHP for work, and today is almost day 2. I started building on top of another page that was already written by someone else, but I'm running into issues. I want to enable the ability to remove multiple items using checkboxes, but I can't get it to work.

 

Here is the code

 

<?

//connect to mysql
$connect = mysql_connect("localhost", "jamestb", "thomas")or die("Connection Error...");

//open database
$con_db = mysql_select_db("potluck") or die("Couldn't open DB: " . mysql_error());

//set up for submit
if (isset($_POST['isSubmit'])){
$fname = $_POST['fname'];
$lname = $_POST['lname'];
$category = $_POST['category'];
$item_text = $_POST['item_text'];

$sql = "INSERT INTO info 
	(last_name, first_name, course, item)
	VALUES 
	('$lname', '$fname', '$category', '$item_text')";
$result = mysql_query($sql) or die (mysql_error());
}

//delete checked 
if (isset($_POST['deleteChecked'])){

$query = "SELECT * FROM info";
$result = mysql_query($query);
$count = mysql_num_rows($result);



for ($i=0;$i<$count;$i++){
	$del_id[$i] = $_POST['checkbox[]'];
	$sql = "DELETE FROM info WHERE id='del_id'";
	$result = mysql_query($sql);
}
}

?>


<!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=iso-8859-1" />
<title>Potluck Luncheon</title>
<link rel="stylesheet" type="text/css" href="default.css" />
</head>

<body>
<div id="wrapper">
<div id="pushdown"></div>
<font face="Arial, Helvetica, sans-serif">


</p>
        
<?php

	$query = "SELECT * FROM info";
	$result = mysql_query($query) or die(mysql_error());		

	echo "<table border='1'><tr><th colspan='3' class = 'head'> Salads </th></tr>";
	echo "<tr><th width='250'> Item </th><th width='250'> Name </th><th width='250'> Delete? </th></tr>";
	while($row = mysql_fetch_array($result)){
		if($row['course'] == 0){
			$id=$row['id'];//take out the id
			echo "<tr><td>".$row['item']."</td>";
			echo "<td>".$row['first_name'] ."</td>";
			echo "<td><input name='checkbox[]' type='checkbox' id='checkbox[]' value='" .$id. "'></td>";


			//echo "<td> <a href='delete.php?cmd=delete&id=$id'>Delete</a></tr> </td>";


		}
	}
	echo "<br /><br /></table>";






	$query = "SELECT * FROM info";
	$result = mysql_query($query) or die(mysql_error());

	echo "<table border='1'><tr><th colspan='3' class = 'head'> Main Course </th></tr>";
	echo "<tr><th width='250'> Item </th><th width='250'> Name </th><th width='250'> Delete?</th></tr>";
	while($row = mysql_fetch_array($result)){
		if($row['course'] == 1){
		$id=$row['id'];//take out the id
			echo "<tr><td>".$row['item']."</td>";
			echo "<td>".$row['first_name'] ."</td>";


			//echo "<td><input type='Checkbox' name=checkbox[] id='chkbox[]' id='$rows['id']'></td>";

			//echo "<td> <a href='delete.php?cmd=delete&id=$id'> Delete</a> </td></tr>";
		}
	}
	echo "<br /><br /></table>";




	$query = "SELECT * FROM info";
	$result = mysql_query($query) or die(mysql_error());

	echo "<table border='1'><tr><th colspan='3' class = 'head'> Complementary </th></tr>";
	echo "<tr><th width='250'> Item </th><th width='250'> Name </th><th width='250'> Delete?</th></tr>";
	while($row = mysql_fetch_array($result)){
		if($row['course'] == 2){
		$id=$row['id'];//take out the id
			echo "<tr><td>".$row['item']."</td>";
			echo "<td>".$row['first_name'] ."</td>";

			//echo "<td><input type='Checkbox' name=checkbox[] id='chkbox[]' id='$rows['id']'></td>";

			//echo "<td> <a href='delete.php?cmd=delete&id=$id'> Delete</a> </td>";
		}
	}
	echo "<br /><br /></table>";





	$query = "SELECT * FROM info";
	$result = mysql_query($query) or die(mysql_error());

	echo "<table border='1'><tr><th colspan='3' class = 'head'> Desert </th></tr>";
	echo "<tr><th width='250'> Item </th><th width='250'> Name </th><th width='250'>Delete?</th></tr>";
	while($row = mysql_fetch_array($result)){
		if($row['course'] == 3){
		$id=$row['id'];//take out the id
			echo "<tr><td>".$row['item']."</td>";
			echo "<td>".$row['first_name'] ."</td>";


			//echo "<td><input type='Checkbox' name=checkbox[] id='chkbox[]' id='$rows['id']'></td>";

			//echo "<td> <a href='delete.php?cmd=delete&id=$id'> Delete</a> </td>";
		}
	}
	echo "<br /><br /></table>";




	$query = "SELECT * FROM info";
	$result = mysql_query($query) or die(mysql_error());

	echo "<table border='1'><tr><th colspan='3' class = 'head'> Drinks </th></tr>";
	echo "<tr><th width='250'> Item </th><th width='250'> Name </th><th width='250'> Delete? </th></tr>";
	while($row = mysql_fetch_array($result)){
		if($row['course'] == 4){
		$id=$row['id'];//take out the id
			echo "<tr><td>".$row['item']."</td>";
			echo "<td>".$row['first_name'] ."</td>";



			//echo "<td><input type='Checkbox' name=checkbox[] id='chkbox[]' id='$rows['id']'></td>";				

			//echo "<td> <a href='delete.php?cmd=delete&id=$id'> Delete</a> </td>";
		}
	}
	echo "<br /><br /></table>";

?>
<br />
<hr />



    
    <form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post">
    <fieldset>
<p>First Name:
	<input type="text" name="fname" size="20" />
      Last Name: (Optional)
        <input type="text" name="lname" size="20" />
</p>
    <legend>
Make a Contribution
    </legend>
    <br />
	<input type="radio" value="0" name="category" /> Salads
	<input type="radio" value="1" name="category" /> Main Course
	<input type="radio" value="2" name="category" /> Complementary
	<input type="radio" value="3" name="category" /> Desert
	<input type="radio" value="4" name="category" /> Drinks<br /><br />
	The Item You are Bringing: <input type="text" name="item_text" size="40" />	
<br /><br /></p>
        	<p><i> Please take time to review the above items already being brought. <br /> For multiple items, please complete the form twice.<br /> Thank you, and have a wonderful day!</i></p>
<input type="submit" name="isSubmit" value="Submit Carry In" />
<input type="reset" value="Reset Forms" />
<input type="submit" name="deleteChecked" value="Delete Checked" />
  
    </fieldset>
    </form>


    
    

    
<div id="litslabs">
	<div id="maintence">
		site developed and maintained by:
	</div>
	<a href="http://ul.bgsu.edu/litslabs/"><img alt="Developed by: Lits Labs" src="logoblack.png" /></a><br />
        <a href="delete_all.php">Delete All</a>
</div>

</div>



</body>
</html>

 

Any help or ideas are much appreciated. Thanks.

Okay the problem with the delete code (see comments)

<?php
//delete checked
if (isset($_POST['deleteChecked'])){
   
   $query = "SELECT * FROM info";
   $result = mysql_query($query);
   $count = mysql_num_rows($result);
   
   
   
   for ($i=0;$i<$count;$i++){
      $del_id[$i] = $_POST['checkbox[]']; //Nope the [] make it an array
      $sql = "DELETE FROM info WHERE id='del_id'"; //del_id should be $del_id
      $result = mysql_query($sql);
   }
}
?>

 

okay heres how your fix your code

<?php
   foreach($_POST['checkbox'] as $del_id)
   {
      $sql = "DELETE FROM info WHERE id='$del_id'";
      $result = mysql_query($sql);
   }
}   
?>

BUT this is a better way. as it only uses 1 SQL call

<?php
//delete checked
if (isset($_POST['deleteChecked'])){
/*better option*/
$CB = implode(",",$_POST['checkbox']);
$query = "DELETE FROM info WHERE id IN ($CB)";
$result = mysql_query($query);
}
?>

 

 

Okay, I tried both of the methods you posted, and here are some errrors I received.

 

For the first method:

 

Warning: Invalid argument supplied for foreach() in /var/www/html/dan/potluck/index.php on line 32

 

For the second using implode:

 

Notice: Undefined index: checkbox in /var/www/html/dan/potluck/index.php on line 27

 

Warning: implode() [function.implode]: Bad arguments. in /var/www/html/dan/potluck/index.php on line 27

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.