Solved

insert into mysql database form with multiple fields that include a checkbox array

Posted on 2011-02-11
1
423 Views
Last Modified: 2012-05-11
I am able to submit all fields into my database with the exception of the art_photos[] checkbox array. All fields enter their correct data but the array inserts the word NULL. Any help would be appreciated as to why the array won't insert my data value.  I removed the styles from this code so if you see something regarding Spry, just ignore that part of the code. Here's what I am working with.


<?php virtual('/budgets/Connections/connAdmin.php'); ?>
<?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;
}
}

$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
  $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
  $insertSQL = sprintf("INSERT INTO daily_budget (rundate, slug, reporter, budgetInfo, notes, `section`, deadline, art_photos, sidebar, sBudget) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s)",
                       GetSQLValueString($_POST['rundate'], "text"),
                       GetSQLValueString($_POST['slug'], "text"),
                       GetSQLValueString($_POST['reporter'], "text"),
                       GetSQLValueString($_POST['budgetInfo'], "text"),
                       GetSQLValueString($_POST['notes'], "text"),
                       GetSQLValueString($_POST['section'], "text"),
                       GetSQLValueString($_POST['deadline'], "text"),
                                 GetSQLValueString($_POST['art_photos'], "text"),
                       GetSQLValueString($_POST['sidebar'], "text"),
                       GetSQLValueString($_POST['sBudget'], "text"));

  mysql_select_db($database_connAdmin, $connAdmin);
  $Result1 = mysql_query($insertSQL, $connAdmin) or die(mysql_error());
}

?>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Budget Record</title>
</head>

<body>
<center><h2>Insert Daily Budget </h2></center>
<?php
if (isset($error)) {
      echo '<ul>';
      foreach($error as $alert) {
            echo "<li class='warning'>$alert</li>\n";
      }
      echo '</ul>';
}
?>
<form action="<?php echo $editFormAction; ?>" method="POST" name="form1" id="form1">
  <table align="center" width="60%" border="2" bgcolor="#FFFFFF">
    <tr valign="baseline">
      <td width="14%" align="right" nowrap="nowrap"><STRONG>Rundate:</STRONG></td>
      <td width="86%">
        <input type="text" name="rundate" size="30" value="" id="jQueryUICalendar2"/>
 
</td>
    </tr>
    <tr valign="baseline">
      <td nowrap="nowrap" align="right"><STRONG>Section:</STRONG></td>
      <td>
        <select name="section">
        <option value=""></option>
          <option value="A1">A1</option>
          <option value="Pickup All">Pickup All</option>
          <option value="Region">Region</option>
          <option value="Atlantic">Atlantic</option>
               <option value="Business">Business</option>
          <option value="Features">Features</option>
          <option value="Sports">Sports</option>
        </select>
     </td>
    </tr>
    <tr valign="baseline">
      <td nowrap="nowrap" align="right"><strong>Slug:</strong></td>
      <td><span id="sprytextfield2">
      <input type="text" name="slug" value="" size="32" />
      <span class="textfieldRequiredMsg">REQUIRED</span></span><span style="color: #F00; font-weight: bold; font-size: 10px;"></span></td>
    </tr>
    <tr valign="baseline">
      <td nowrap="nowrap" align="right"><strong>Budget Information:</strong></td>
      <td><span id="sprytextarea1">
        <textarea name="budgetInfo" cols="50" rows="4"></textarea>
<span class="textareaRequiredMsg">Required.</span></span><span style="color: #F00; font-weight: bold; font-size: 11px;"></span></td>
    </tr>
    <tr valign="baseline">
      <td nowrap="nowrap" align="right"><strong>Notes:</strong></td>
      <td><input type="text" name="notes" value="" size="32" /></td>
    </tr>
    <tr valign="baseline">
      <td nowrap="nowrap" align="right"><strong>Reporter:</strong></td>
      <td><span id="sprytextfield3">
        <input type="text" name="reporter" value="" size="32" />
      <span class="textfieldRequiredMsg">Required.</span></span><span style="color: #F00; font-weight: bold; font-size: 10px;"></span></td>
    </tr>
    <tr valign="baseline">
      <td nowrap="nowrap" align="right"><strong>Deadline:</strong></td>
      <td><input type="text" name="deadline" size="30" value="Enter date" id="jQueryUICalendar1"/>
> </td>
    </tr>
    <tr valign="baseline">
      <td nowrap="nowrap" align="right"><strong>Artwork:</strong></td>
      <td><label>
          <input type="checkbox" name="art_photos[]" value="factbox" id="art_photos_0"  />
          Factbox</label>
       
        <label>
          <input type="checkbox" name="art_photos[]" value="graphic" id="art_photos_1" />
          Graphic</label>
       
        <label>
          <input type="checkbox" name="art_photos[]" value="photo" id="art_photos_2" />
          Photo</label>
       
        <label>
          <input type="checkbox" name="art_photos[]" value="video" id="art_photos_3"  />
          Video</label>
      <br /></td>
    </tr>
        <tr>
       
    </tr>
       <tr valign="baseline">
      <td nowrap="nowrap" align="right">      <strong>Sidebar:</strong></td>
      <td valign="baseline"><span id="spryradio2">
        <label>
          <input type="radio" name="sidebar" value="y" id="sidebar_0" />
          Yes</label>
        <br />
        <label>
          <input type="radio" name="sidebar" value="n" id="sidebar_1" />
          No</label>
        <br />
        <span class="radioRequiredMsg"><strong style="font-size: 11px">REQUIRED.</strong></span></span>
       
    </tr>
    <tr valign="baseline">
      <td nowrap="nowrap" align="right"><strong>Sidebar Information:</strong></td>
      <td><input type="text" name="sBudget" value="" size="32" /></td>
    </tr>
    <tr valign="baseline">
      <td nowrap="nowrap" align="right">&nbsp;</td>
      <td><input type="submit" value="Insert record" /></td>
    </tr>
  </table>
  <input type="hidden" name="MM_insert" value="form1" />
</form>

<h3><a href="/new_budget/admin/manage_budgets.php"><strong>View your budget entry, make changes or delete your budget.</strong></a></h3>

</body>
</html>
0
Comment
Question by:acpress
1 Comment
 
LVL 27

Accepted Solution

by:
Lukasz Chmielewski earned 500 total points
ID: 34875323
I think the database field is not availab le to get any value from an array thus it is getting null,
you would have to implode the art_photos[] array with some character and then insert it into that field art_photos.
Is the field type text or varchar ?
0

Featured Post

NEW Veeam Agent for Microsoft Windows

Backup and recover physical and cloud-based servers and workstations, as well as endpoint devices that belong to remote users. Avoid downtime and data loss quickly and easily for Windows-based physical or public cloud-based workloads!

Question has a verified solution.

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

Introduction In this installment of my SQL tidbits, I will be looking at parsing Extensible Markup Language (XML) directly passed as string parameters to MySQL 5.1.5 or higher. These would be instances where LOAD_FILE (http://dev.mysql.com/doc/refm…
Load balancing is the method of dividing the total amount of work performed by one computer between two or more computers. Its aim is to get more work done in the same amount of time, ensuring that all the users get served faster.
The Email Laundry PDF encryption service allows companies to send confidential encrypted  emails to anybody. The PDF document can also contain attachments that are embedded in the encrypted PDF. The password is randomly generated by The Email Laundr…

685 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