?
Solved

Not able to delete SQL row from HTML Checkbox...

Posted on 2011-09-15
2
Medium Priority
?
272 Views
Last Modified: 2012-05-12
Not sure what the problem is here... I want the code to redirect user to page, but to also delete the mysql row if checkbox is checked.  

Edit: Line 222 is the dynamic checkboxes. line 236 is the delete button.

<?php require_once('../Connections/clcserver1.php'); ?>
<?php
// Start_session, check if user is logged in or not, and connect to the database all in one included file
include_once("scripts/checkuserlog.php");
?>
<?php
////////////////////////////////////////////////      Member log in double check       ///////////////////////////////////////////////////
if (!@$_SESSION['idx']) { 
    $msgToUser = '<br /><br /><font color="#FF0000">Only site members can do that</font><p><a href="register.php">Join Here</a></p>';
    include_once 'msgToUser.php'; 
    exit(); 
} else if ($logOptions_id != $_SESSION['id']) {
	$msgToUser = '<br /><br /><font color="#FF0000">Only site members can do that</font><p><a href="register.php">Join Here</a></p>';
    include_once 'msgToUser.php'; 
    exit(); 
}
?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{
  if (PHP_VERSION < 6) {
    $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
  }

  $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;    
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}
}

mysql_select_db($database_clcserver1, $clcserver1);
$query_Recordset1 = "SELECT * FROM job_leads";
$Recordset1 = mysql_query($query_Recordset1, $clcserver1) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);

mysql_select_db($database_clcserver1, $clcserver1);
@$industry = $_GET['industry'];
// Escape User Input to help prevent SQL Injection
$industry = mysql_real_escape_string($industry);
$query_Recordset1 = "SELECT * FROM job_leads WHERE industry= '$industry'";
$Recordset1 = mysql_query($query_Recordset1, $clcserver1) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);

// Start_session, check if user is logged in or not, and connect to the database all in one included file

// Include the class files for auto making links out of full URLs and for Time Ago date formatting
include_once("wi_class_files/autoMakeLinks.php");
include_once ("wi_class_files/agoTimeFormat.php");
// Create the two objects before we can use them below in this script
$activeLinkObject = new autoActiveLink;
$myObject = new convertToAgo; 
?>
<?php
// Include this script for random member display on home page
include_once "scripts/homePage_randomMembers.php"; 
?>
<?php
$sql_blabs = mysql_query("SELECT * FROM blabbing ORDER BY blab_date DESC LIMIT 10");

$blabberDisplayList = ""; // Initialize the variable here

while($row = mysql_fetch_array($sql_blabs)){
	
	$blabid = $row["id"];
	$uid = $row["mem_id"];
	$the_blab = $row["the_blab"];
	//$the_blab = substr($the_blab, 0, 48);
	$the_blab = wordwrap($the_blab, 30, "\n", true);
	//$the_blab = wordwrap($the_blab, 14, "<br />\n");
	$notokinarray = array("fag", "gay", "shit", "fuck", "stupid", "idiot", "asshole", "cunt", "douche");
    $okinarray   = array("sorcerer", "grey", "shug", "farg", "smart", "awesome guy", "butthole", "cake", "dude");
	$the_blab = str_replace($notokinarray, $okinarray, $the_blab);
	$the_blab = ($activeLinkObject -> makeActiveLink($the_blab));
	$blab_date = $row["blab_date"];
	$convertedTime = ($myObject -> convert_datetime($blab_date));
    $whenBlab = ($myObject -> makeAgo($convertedTime));
	$blab_type = $row["blab_type"];
	$blab_device = $row["device"];
	
	// Inner sql query
	$sql_mem_data = mysql_query("SELECT id, username, firstname, lastname FROM myMembers WHERE id='$uid' LIMIT 1");
	while($row = mysql_fetch_array($sql_mem_data)){
			$uid = $row["id"];
			$username = $row["username"];
			$firstname = $row["firstname"];
			$lastname = $row["lastname"];
			if ($firstname != "") {$username = "$firstname $lastname"; } // (I added usernames late in  my system, this line is not needed for you)
			///////  Mechanism to Display Pic. See if they have uploaded a pic or not  //////////////////////////
			$ucheck_pic = "members/$uid/image01.jpg";
			$udefault_pic = "members/0/image01.jpg";
			if (file_exists($ucheck_pic)) {
			$blabber_pic = '<div style="overflow:hidden; width:40px; height:40px;"><img src="' . $ucheck_pic . '" width="40px" border="0" /></div>'; // forces picture to be 100px wide and no more
			} else {
			$blabber_pic = "<img src=\"$udefault_pic\" width=\"40px\" height=\"40px\" border=\"0\" />"; // forces default picture to be 100px wide and no more
			}
	
			$blabberDisplayList .= '
      			<table width="100%" align="center" cellpadding="4" style="background-color:#CCCCCC; border:#999 1px solid;">
        <tr>
          <td width="7%" bgcolor="#FFFFFF" valign="top"><a href="profile.php?id=' . $uid . '">' . $blabber_pic . '</a>
          </td>
          <td width="93%" bgcolor="#F9F9F9" style="line-height:1.5em;" valign="top">
		 <span class="liteGreyColor textsize9"> ' . $whenBlab . ' <a href="profile.php?id=' . $uid . '"><strong>' . $username . '</strong></a> <br />
          via <em>' . $blab_device . '</em></span><br />
         <span class="textsize10"> ' . $the_blab . '</span>
            </td>
        </tr>
      </table>';
			}
	
}
?> 
<!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" />
<meta name="Description" content="CLC, Inc. Employment Network" />
<meta name="Keywords" content="employment, find a job, job, dfw employment, fort worth jobs, dallas jobs, training, veteran forum, 
forums employment, find employment, job discussion, job resources, vet, veteran, veteran resources" />
<title>CLC, Inc. Employment Network</title>
<link href="style/main.css" rel="stylesheet" type="text/css" />
<link rel="icon" href="favicon.ico" type="image/x-icon" />
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
<script src="js/jquery-1.4.2.js" type="text/javascript"></script>
<script language="javascript" type="text/javascript"> 
function toggleSlideBox(x) {
		if ($('#'+x).is(":hidden")) {
			//$(".sourceBox").slideUp(200);
			$('#'+x).slideDown(300);
		} else {
			$('#'+x).slideUp(300);
		}
}
</script>
</head>
<body>
<?php include_once "header_template.php"; ?>

<table width="920" style="background-color:#cccccc;" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>

    <td width="732" valign="top">

<div id="sb1" style="display:none; width:704px; border:#999 1px solid; padding:12px; background-image:url(style/area1BG.jpg); line-height:1.5em; ">CLC, Inc. Employment Network<br />
<table width="96%" border="0" align="center" cellpadding="0" cellspacing="0" style="margin-top:5px;">
  <tr>
      <td width="34%"><strong>&bull; Registration System</strong><span class="textsize10"> (php  mysql)</span><strong><br />
        &bull; Activation System</strong> <span class="textsize10">(php  mysql)</span><strong><br />
        &bull; Login w/ keep log System</strong> <span class="textsize10">(php  mysql)</span></td>
    <td width="33%"><strong>&bull; Friend System</strong> <span class="textsize10">(php  mysql)</span><strong><br />
&bull; Private Message System </strong><span class="textsize10">(php  mysql)</span><strong><br />
&bull; API and Gadget Systems </strong><span class="textsize10">(php  mysql)</span></td>
    <td width="33%"><strong>&bull; Profile EditingSystem</strong> <span class="textsize10">(php  mysql)</span><strong><br />
&bull; Member Listing System </strong> <span class="textsize10">(php  mysql)</span><strong><br />
&bull;Status System</strong> <span class="textsize10">(php  mysql)</span></td>
    </tr>
</table>
</div>
<div style="width:728px; border:#999 1px solid; border-bottom:none;"><?php include_once "leaderBoardAd.php"; ?></div>
<table style="background-color:#EFEFEF; border:#999 thin solid; padding:10px; line-height:1.5em;" width="730" border="0" cellspacing="0" cellpadding="0">
<tr>
  <td width="86%" valign="top" style="font-size:10px;"><table border="1" cellpadding="0" cellspacing="0">
    <tr>
      <td><table style="background-color:#EFEFEF; border:#999 thin solid; padding:10px; line-height:1.5em;" width="730" border="1" cellspacing="0" cellpadding="8">
        <tr>
          <td width="14%" valign="top"><h2>Select Industry</h2>
            <p><a href="http://clcinc.org/social/joblist.php?industry=logistics"> Logistics</a> <br />
               <a href="http://clcinc.org/social/joblist.php?industry=admin"> Administrative</a> <br />
               <a href="http://clcinc.org/social/joblist.php?industry=manu"> Manufacturing</a><br />
               <a href="http://clcinc.org/social/joblist.php?industry=mgmt"> Management</a><br />
               <a href="http://clcinc.org/social/joblist.php?industry=protect"> Protective/Law</a><br />
               <a href="http://clcinc.org/social/joblist.php?industry=natresource"> Oil/Gas</a><br />
               <a href="http://clcinc.org/social/joblist.php?industry=social"> Social</a><br />
               <a href="http://clcinc.org/social/joblist.php?industry=aero"> Aerospace</a><br />
               <a href="http://clcinc.org/social/joblist.php?industry=service"> Service</a><br />
               <a href="http://clcinc.org/social/joblist.php?industry=retail"> Retail</a><br />
            </p>
            </td>
          <td width="86%" valign="top" style="font-size:10px;">
          <form name="form1" method="post" action="">
            <table border="1" cellpadding="0" cellspacing="0">
              <tr>
                <td>Industry</td>
                <td>Contact</td>
                <td>Location</td>
                <td>Position</td>
                <td>Pay</td>
                <td>Hours</td>
                <td>Qualifications</td>
                <td>Delete</td>
                </tr>
              <tr>
                <?php do { ?>
                 [b] <td height="20"><?php echo $row_Recordset1['industry']; ?></td>
                  <td><?php echo $row_Recordset1['contact']; ?></td>
                  <td><?php echo $row_Recordset1['location']; ?></td>
                  <td><?php echo $row_Recordset1['position']; ?></td>
                  <td><?php echo $row_Recordset1['pay']; ?></td>
                  <td><?php echo $row_Recordset1['hours']; ?></td>
                  <td><?php echo $row_Recordset1['qualifications']; ?></td>
                  <td><input name="checkbox[]" type="checkbox" id="checkbox[]" value="<?php echo $row_Recordset1['id']; ?>"></td>
                  </tr>
                  <tr>
                  <?php } while ($row_Recordset1 = mysql_fetch_assoc($Recordset1)); ?>
              </tr>
            </table>
            <p> <a href="http://clcinc.org/social/jobadd.php">Insert an opening</a><br />
[/b]
<?php
/*
$res_user_type = mysql_query("SELECT account_type FROM myMembers WHERE id='$uid' LIMIT 1");
$data=mysql_fetch_array($res_user_type);
if ($num_acc_type > 0){
  
		  print '<input name="delete" type="submit" id="delete" value="Delete" />';
		  echo $data[0];
		  echo $uid;
}
*/
//verify that the user is B or C account type
$userID2 = $_SESSION['id'];
$result = mysql_query("SELECT account_type FROM mymembers WHERE id = '" . $userID2 . "' AND (account_type = 'b' OR account_type = 'c')") or die(mysql_error());  

if(mysql_num_rows($result) > 0) {
  print '<input name="delete" type="submit" id="delete" value="Delete" />';
} else {
;
exit();
}
mysql_close();
?>
            </p></td>
        </tr>
      </table></td>
      </tr>
  </table></td>
</tr>
</table></td>
    <td width="188" valign="top"><?php include_once "right_AD_template.php"; ?><br />
<a href="#" target="_blank"><center></center></a></td>
  </tr>

</table>
<?php
// Check if delete button active, start this
if ( isset( $_POST['checkbox'] ) && is_array( $_POST['checkbox']) )
{
$ids = array_map( 'intval', $_POST['checkbox'] );
$ids = implode( ',', $ids );
$sql = 'DELETE FROM `job_leads` WHERE `id` IN ( ' . $ids . ' )';
$result = mysql_query( $sql );
}
else
{
$result = FALSE;
}

// if successful redirect to self
if($result){
echo "<meta http-equiv=\"refresh\" content=\"0;URL=joblist.php?industry=$industry\">";
}
mysql_close();
?>
<?php include_once "footer_template.php"; ?>
</body>
</html>
<?php
mysql_free_result($Recordset1);

?>

Open in new window

0
Comment
Question by:clcinc
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
2 Comments
 
LVL 58

Expert Comment

by:Julian Hansen
ID: 36547585
Approximate code below
$delete = isset($_POST['delete'])?$_POST['delete'] : false;
if ($delete !== false) {
  $checkbox = isset($_POST['checkbox'])?$_POST['checkbox'] : array();; // Not secure
  if (!empty($checkbox)) {
    foreach($checkbox as $c) {
      $query = "DELETE FROM table WHERE ID=$c";
      mysql_query($query);
    }
    header('location: newlocation.php'); // modify as needed
  }
}

Open in new window

0
 
LVL 111

Accepted Solution

by:
Ray Paseur earned 2000 total points
ID: 36548820
This sequence occurs at line 265
<?php
// Check if delete button active, start this
if ( isset( $_POST['checkbox'] ) && is_array( $_POST['checkbox']) )
{
$ids = array_map( 'intval', $_POST['checkbox'] );
$ids = implode( ',', $ids );
$sql = 'DELETE FROM `job_leads` WHERE `id` IN ( ' . $ids . ' )';
$result = mysql_query( $sql );
}
else
{
$result = FALSE;
}

Open in new window

You might want to use some data visualization techniques to see what you are actually creating with this code.  You might also want to know whether the query works, and if not, why not.  So I think I might want to add these things to the programming, at least temporarily, so I could see what the code is doing to the data.

Use var_dump($_POST) to print out the contents of $_POST.  If you echo "<pre>" before var_dump() it will make the variables much easier to read.
Use var_dump($sql) to print out the contents of the generated query immediately before running the query.
Test the return value from the mysql_query() function.  MySQL is not a black box.  It can and will fail for reasons that are outside of your control.  You need to be able to detect the errors and make your script respond appropriately.  An example of how to run a query and visualize any resulting errors is in this code snippet.

You might also enjoy this book.  It is a much better way to learn PHP and MySQL when compared to Dreamweaver.  Dreamweaver contains some of the worst PHP programming ever written.  Do not try to follow their examples; you can learn a lot more - and the right techniques - from the SitePoint book in a matter of minutes!
http://www.sitepoint.com/books/phpmysql4/

Best of luck, ~Ray
$sql = " - WHATEVER - ";
if (!$res = mysql_query($sql))
{
    $errmsg = mysql_errno() . ' ' . mysql_error();
    echo "<br/>QUERY FAIL: ";
    echo "<br/>$sql <br/>";
    die($errmsg);
}
// IF THE SCRIPT GETS THIS FAR, THE QUERY WORKED

Open in new window

0

Featured Post

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

When table data gets too large to manage or queries take too long to execute the solution is often to buy bigger hardware or assign more CPUs and memory resources to the machine to solve the problem. However, the best, cheapest and most effective so…
In this blog post, we’ll look at how ClickHouse performs in a general analytical workload using the star schema benchmark test.
In this video, Percona Solution Engineer Rick Golba discuss how (and why) you implement high availability in a database environment. To discuss how Percona Consulting can help with your design and architecture needs for your database and infrastr…
In this video, Percona Solutions Engineer Barrett Chambers discusses some of the basic syntax differences between MySQL and MongoDB. To learn more check out our webinar on MongoDB administration for MySQL DBA: https://www.percona.com/resources/we…
Suggested Courses

777 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question