Re: Handling Large Check Box Data
| From: | Kevin Murphy | Date: | Wed, 17 May 2006 20:58:27 +0000 |
| Subject: | Re: Handling Large Check Box Data | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-236363@lists.php.net to get a copy of this message | ||
I did something similar recently. Basically I have one MySQL field to handle several dozen checkboxes, my situation though was where the checkboxes are numerically sequential though so I am not sure if this helps. I also had only a couple hours to do this from start to finish so I am sure there is a better way, but maybe this helps.
I wrote a function that generates the row of checkboxes, then a function that combines them all into one field and so the status of every checkbox is in one field.
Function generates the checkboxes and checks in the array if that checkbox is checked or not.
function row_generator($row,$number,$array)
{
echo "\n<tr>";
echo "\n\t<th align=\"center\" valign=\"top\">Row $row</th>";
$i = 1;
while ($i <= "$number")
{
if ($i < "10")
{ $row_number = "{$row}-0{$i}"; }
else
{ $row_number = "{$row}-{$i}"; }
echo "\n\t<td align=\"center\" valign=\"top\">";
echo "<input type=\"checkbox\" name=\"$row_number\" id=\"$row_number\"";
if (strstr($array,$row_number) === FALSE)
{ echo ""; }
else
{ echo " CHECKED"; }
echo ">";
echo "<br>";
echo $i;
echo "</td>";
$i++;
}
echo "\n</tr>";
}
In use:
$seats = $row['seats'];
row_generator("A","23",$seats);
Collect the posted Data and then later this gets input into a database
$poster_A = "";
$i = 1;
while ($i <= "30")
{
if ($i < "10")
{ $r = "0{$i}"; }
else
{ $r = $i; }
if (isset($_POST["A-$r"]))
{ $poster_A .= "A-$r";
$poster_A .= ":"; }
$i++;
}
$seats = ("{$poster_A}{$poster_B}.... etc");
$query = "UPDATE seating_chart SET
seats = '$seats'
WHERE season = '2006'";
--
Kevin Murphy
Webmaster: Information and Marketing Services
Western Nevada Community College
www.wncc.edu
775-445-3326
On May 17, 2006, at 11:21 AM, Rahul S. Johari wrote:
> Ave,
>
> I’m a little confused as to what’s the best way to handle this.
> I have a form which, apart from lots of other fields, has a set of
> 25 – 30
> Check Boxes, each of which asks the user for some kind of
> information which
> the user can check or leave unchecked.
> The information each Check Box collects will also appear in the
> “Listing”
> for users to view once the user has completed & submitted the form.
> Furthermore, there is an Advanced Search also available to users
> which will
> also provide the same 25 - 30 check boxes which define the search
> criteria.
> I’m not sure what’s the best, most efficient way to do this.
>
> The tedious way to do this is to make 30 fields in the mySQL
> database, and
> if the check box is checked, the data goes into the corresponding
> field...
> And similarly listing the data from the field if field is non-
> empty.... And
> similarly including each field in the Search options.
>
> I want suggestions for a better/faster way to do this. I did think
> about
> creating a single field and storing the data from each ‘checked’
> check box
> as comma separated values in the single field. I’m not sure how to
> do that
> and if that’s the best way.... But even if I can, I’m not sure how
> to get
> the data to display separately out of that field in the Listings
> view and
> more importantly how to include that data in the Search options.
>
> Any help would be appreciated.
>
> Thanks,
>
> Rahul S. Johari
> Coordinator, Internet & Administration
> Informed Marketing Services Inc.
> 500 Federal Street, Suite 201
> Troy NY 12180
>
> Tel: (518) 687-6700 x154
> Fax: (518) 687-6799
> Email: rahul@informed-sources.com
> http://www.informed-sources.com
>