Jump to content


Photo

How to output multiple select box array to MySQL?


  • Please log in to reply
1 reply to this topic

#1 diotima

diotima
  • New Members
  • Pip
  • Newbie
  • 1 posts

Posted 06 July 2006 - 02:32 AM

Hi,

I'm trying to use a multiple select box on a form so that more than one item may be selected and then have the value(s) written to MySQL. I'm able to trace the variables through one screen to the next, but I can't get it to write to the database correctly.

What I have on the form ---

<snip>

// Select modules from modules table

$query = "SELECT * FROM $table";
$result = mysql_query($query);
$num_results = mysql_num_rows($result);
// Get/Set the ModuleID
$mid = 'whatever';

// create query
$ModuleNames= "Select * from Modules order by ModuleName asc";

// execute query
$moduleresult = mysql_query($ModuleNames);


<snip>


<?php
echo '<select name="Modules[]" class="cubufont" multiple="multiple">';
while($opt = mysql_fetch_array($moduleresult ))
{

echo '<option value="' . $opt['ModuleID'] . '"';

// Select the selected value
echo ( $opt['ModuleID'] == $mid ) ? ' selected' : '';

echo '>';
echo $opt['ModuleName'];
echo '</option>';
}
echo '</select>'; 

?>


I can get the value(s) to appear on the next page via --

$Modules=$_POST['Modules'];
if ($Modules){
foreach ($Modules as $m){echo '',$m,',';}
}

But I'm stuck on how to get the value(s) into the MySQL table

I've used the serialize command like this --

$ListModules=serialize($Modules);
And then run the query to write this way --

mysql_query("INSERT INTO $table (Modules)
VALUES
('$ListModules')

But I'm left with the data input looking like this --
a:2:{i:0;s:2:"71";i:1;s:2:"69";}

What I really want is just to have 71,69 (for example) written to the table. Is this possible? I haven't had any luck with the unserialize.

Thanks,
Marie


#2 .josh

.josh
  • Staff Alumni
  • .josh
  • 14,871 posts

Posted 06 July 2006 - 05:17 AM

$Modules = implode(",", $Modules);

Did I help you? Feeling generous? Buy me lunch! 
Please, take the time and do some research and find out how much it would have cost you to get your help from a decent paid-for source. A "roll-of-the-dice" freelancer will charge you $5-$15/hr. A decent entry level freelancer will charge you around $15-30/hr. A professional will charge you anywhere from $50-$100/hr. An agency will charge anywhere from $100-$250/hr. Think about all this when soliciting for help here. Think about how much money you are making from the work you are asking for help on. No, we do not expect you to pay for the help given here, but donating a few bucks is a fraction of the cost of what you would have paid, shows your appreciation, helps motivate people to keep offering help without the pricetag, and helps make this a higher quality free-help community :)




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users