BrighteyesDesign
asked on
Comma lists into drop down with PHP and MySQL
Is it possible to add a database list ie L, M, N, O dynamically into a drop down menu?
I have attached a couple of images to show what i mean.
Picture-1.png
Picture-3.png
I have attached a couple of images to show what i mean.
Picture-1.png
Picture-3.png
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Thanks for that,.
Just one thing though 'L,M,N,O' needs to be dynamic as there are different sizes for some products (even though the screenshot i attached typically showed two entries both with L,M,N,O!)
I have tried replacing 'L,M,N,O' with 'size' and '$size' but that does not seem to work.
Any ideas?
Just one thing though 'L,M,N,O' needs to be dynamic as there are different sizes for some products (even though the screenshot i attached typically showed two entries both with L,M,N,O!)
I have tried replacing 'L,M,N,O' with 'size' and '$size' but that does not seem to work.
Any ideas?
The code I posted was an example since I don't have the database.
Please have a look at the following example. I have posted the MySQL table for reference.
Hope this helps,
John
Please have a look at the following example. I have posted the MySQL table for reference.
Hope this helps,
John
page.php
========
<?php
$dbHost = "localhost";
$dbUser = "YOUR_USERNAME";
$dbPass = "YOUR_PASSWORD";
$dbName = "YOUR_DATABASE";
$db = mysql_connect($dbHost,$dbUser,$dbPass);
mysql_select_db($dbName,$db);
$query = mysql_query("SELECT * FROM tblitem") or die(mysql_error());
while($row = mysql_fetch_array($query)) {
echo 'ID: '.$row['id'].', Item: '.$row['item'].' ';
$list = $row['size'];
$listarray = explode(',',$list);
echo '<select name="size">
<option value="all">All</option>';
foreach($listarray as $value) {
echo '<option value="'.$value.'">'.$value.'</option>';
}
echo '</select><br />';
}
?>
tblitem
=======
CREATE TABLE `tblitem` (
`id` int(11) unsigned NOT NULL auto_increment,
`item` varchar(50) NOT NULL,
`size` varchar(50) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
--
-- Dumping data for table `tblitem`
--
INSERT INTO `tblitem` (`id`, `item`, `size`) VALUES
(1, 'Item 1', 'L,M,N,O'),
(2, 'Item 2', 'A,B,C,D');
If your string is anything (including a php variable) that is alphanumeric characters separated by commas, it will work.
$x="x";
$y="yyy";
$string = "L,M,$x,$y,ZZZ";
$array = explode(",",$string);
$array will then have 5 elements -- L M x yyy ZZZ
$x="x";
$y="yyy";
$string = "L,M,$x,$y,ZZZ";
$array = explode(",",$string);
$array will then have 5 elements -- L M x yyy ZZZ
ASKER
Thanks again,
Sorry to be a apin but if i copy my pages code could you see where i'm going wrong?
The table where the product info resides is 'products' the recordset is 'rs_items' and the column is called size.
Also, here's a link to the site http://www.leylasbijoux.com/jewellery.php
Just click on any ring and you'll see the blank dropdown where the sizes should show.
Again, thanks for your patience!!!!!!!
Sorry to be a apin but if i copy my pages code could you see where i'm going wrong?
The table where the product info resides is 'products' the recordset is 'rs_items' and the column is called size.
Also, here's a link to the site http://www.leylasbijoux.com/jewellery.php
Just click on any ring and you'll see the blank dropdown where the sizes should show.
Again, thanks for your patience!!!!!!!
<?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_Leyla, $Leyla);
$query_rs_style = "SELECT * FROM ringstyle";
$rs_style = mysql_query($query_rs_style, $Leyla) or die(mysql_error());
$row_rs_style = mysql_fetch_assoc($rs_style);
$totalRows_rs_style = mysql_num_rows($rs_style);
mysql_select_db($database_Leyla, $Leyla);
$query_rs_colour = "SELECT * FROM colour";
$rs_colour = mysql_query($query_rs_colour, $Leyla) or die(mysql_error());
$row_rs_colour = mysql_fetch_assoc($rs_colour);
$totalRows_rs_colour = mysql_num_rows($rs_colour);
mysql_select_db($database_Leyla, $Leyla);
$query_rs_size = "SELECT * FROM ringsize";
$rs_size = mysql_query($query_rs_size, $Leyla) or die(mysql_error());
$row_rs_size = mysql_fetch_assoc($rs_size);
$totalRows_rs_size = mysql_num_rows($rs_size);
$colname_rs_items = "-1";
if (isset($_GET['id'])) {
$colname_rs_items = $_GET['id'];
}
mysql_select_db($database_Leyla, $Leyla);
$query_rs_items = sprintf("SELECT * FROM products WHERE id = %s", GetSQLValueString($colname_rs_items, "int"));
$rs_items = mysql_query($query_rs_items, $Leyla) or die(mysql_error());
$row_rs_items = mysql_fetch_assoc($rs_items);
$totalRows_rs_items = mysql_num_rows($rs_items);
?>
<!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=UTF-8" />
<title>Cocktail Rings, Earings, Bracelets & Jewellry</title>
<script src="Scripts/swfobject_modified.js" type="text/javascript"></script>
<link href="leyla.css" rel="stylesheet" type="text/css" />
</head>
<body>
<table width="900" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td align="center"><img src="images/leya-logo.jpg" width="300" height="100" alt="Leya Bijoux Logo" /></td>
</tr>
<tr>
<td align="center"><table width="209" height="10" border="0" cellpadding="0" cellspacing="0">
<tr>
<td><!-- saved from url=(0014)about:internet -->
<div id='menu' style='display:none;'>
<div><a href='index.html'>HOME</a></div>
<div><a href='jewellery.php'>RINGS</a></div>
<div><a href='bracelets.php'>BRACELETS</a></div>
<div><a href='earrings.php'>EAR RINGS</a></div>
<div><a href='necklaces.php'>NECKLACES</a></div>
<div><a href='bangles.php'>BANGLES</a></div>
<div><a href='about.php'>ABOUT LEYLA</a></div>
<div><a href='faqs.php'>FAQ%5C%27S</a></div>
<div><a href='contact.php'>CONTACT</a></div>
</div>
<div id="f_source_navigation" style="position:relative; top:0px; left:0px; width:928px;">
<!-- Don't change any part of the DIV code (Press Ctrl+Shift+F to edit) -->
<script src='Menu/MenuScript.js' type='text/javascript'></script>
<!-- saved from url=(0014)about:internet -->
<!-- Flash Object code (EMBED tag will be generated automatically) -->
<div id="f-source-menu" style="position:relative;" onmouseover="if(!ied){i= fdiv.style.height.indexOf('px');h=Number(fdiv.style.height.substring(0,i));fdiv.style.height=h+1+'px';}">
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0" id="Menu" width="928" height="33" >
<param name="movie" value="Menu/menu.swf" />
<param name="quality" value="high" />
<param name="wmode" value="transparent" />
<param name="FlashVars" value="flashlet={bg_Pic_URL:'None',xml_Path:'',stretch_width_to:'928px',_TransparencyShadow:30,_removeSubDelay:500,_minSubWidth:60,_max_height:550,_removeDividers:false,showSearchField:false,searchFieldWidth:80,searchTextColor:#000000,searchFieldColor:#FFFFFF,mainSoundURL:'',clickSoundURL:'',subSoundURL:'',_mainButtonHeight:28,_menuColor:#DDDDDD,_mainFont:'Times Roman',_mainFontSize:10,_mainButtonTextColor:#5e5e5e,_mainButWidthExt:6,_mainHighlightColor:#CCCCCC,_TransparencyMain:100,_subButtonHeight:20,_subMenuColor:#FEFEFE,_subFont:'Times New Roman',_subFontSize:10,_subButtonTextColor:#333333,_subHighlightColor:#999999,_TransparencySub:100,_pos_type:'relative',_pos_centered:false,_pos_top:0,_pos_left:0,_pos_insert:'the insertion point',_file_folder:'Menu'}" />
<noscript>
The <a href="http://f-source.com/">flash menu</a> provided by f-source.com. All Rights Reserved
</noscript>
</object>
<script type="text/javascript">var connected; var message="Hello!"; if (connected){ Run_f_source_menu() }else{ alert("The file MenuScript.js could not be loaded!") }</script>
</div>
</div></td>
</tr>
</table></td>
</tr>
<tr>
<td><div>
<table width="930" border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="center"><table width="929" border="0" cellpadding="0" cellspacing="0" class="querybar">
<tr>
<td width="122" bgcolor="#BBCACC" class="type"><table width="109" height="18" border="0" cellpadding="0" cellspacing="0" class="type">
<tr>
<td><?php echo $row_rs_items['type']; ?></td>
</tr>
</table></td>
<td width="598" align="center" bgcolor="#BACACC"><form action="jewellery.php" method="get">
<table width="560" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="518" align="center" valign="middle"><p class="black">Ring type
<select name="style" class="black" id="style">
<option value="ANY" <?php if (!(strcmp("ANY", $row_rs_style['style']))) {echo "selected=\"selected\"";} ?>>All</option>
<?php
do {
?>
<option value="<?php echo $row_rs_style['style']?>"<?php if (!(strcmp($row_rs_style['style'], $row_rs_style['style']))) ?>><?php echo $row_rs_style['style']?></option>
<?php
} while ($row_rs_style = mysql_fetch_assoc($rs_style));
$rows = mysql_num_rows($rs_style);
if($rows > 0) {
mysql_data_seek($rs_style, 0);
$row_rs_style = mysql_fetch_assoc($rs_style);
}
?>
</select>
Colour
<select name="colour" class="black" id="colour">
<option value="ANY" <?php if (!(strcmp("ANY", $row_rs_colour['colour']))) {echo "selected=\"selected\"";} ?>>All</option>
<?php
do {
?>
<option value="<?php echo $row_rs_colour['colour']?>"<?php if (!(strcmp($row_rs_colour['colour'], $row_rs_colour['colour']))) ?>><?php echo $row_rs_colour['colour']?></option>
<?php
} while ($row_rs_colour = mysql_fetch_assoc($rs_colour));
$rows = mysql_num_rows($rs_colour);
if($rows > 0) {
mysql_data_seek($rs_colour, 0);
$row_rs_colour = mysql_fetch_assoc($rs_colour);
}
?>
</select>
Size
<select name="size" class="black" id="size">
<option value="ANY" <?php if (!(strcmp("ANY", $row_rs_size['size']))) {echo "selected=\"selected\"";} ?>>All</option>
<?php
do {
?>
<option value="<?php echo $row_rs_size['size']?>"<?php if (!(strcmp($row_rs_size['size'], $row_rs_size['size']))) ?>><?php echo $row_rs_size['size']?></option>
<?php
} while ($row_rs_size = mysql_fetch_assoc($rs_size));
$rows = mysql_num_rows($rs_size);
if($rows > 0) {
mysql_data_seek($rs_size, 0);
$row_rs_size = mysql_fetch_assoc($rs_size);
}
?>
</select>
Price Range
<select name="range" class="black" id="range">
<option value="0-50">Less than £50</option>
<option value="51-100">£51 - £100</option>
<option value="101-200">£101-£200</option>
<option value="201-300">£201 - £300</option>
<option value="300-99999999">£300 +</option>
<option value="0-999999999" selected="selected">All</option>
</select>
</p></td>
<td width="62" align="left" valign="middle"><span class="black">
<input name="submit" type="image" id="submit" src="images/search.png" alt="Add to Basket" />
</span></td>
</tr>
</table>
</form></td>
<td width="209" bgcolor="#BACACC"><table width="237" border="0" cellpadding="0" cellspacing="0" class="checkoutbar">
<tr>
<td align="right" class="black">No of items:
<script language="JavaScript" src="http://www.romancart.com/cartinfo.asp?storeid=50225&type=1" type="text/javascript"></script>
Total:
<script language="JavaScript" src="http://www.romancart.com/cartinfo.asp?storeid=50225&type=2" type="text/javascript"></script>
<a href="http://www.romancart.com/cart.asp?storeid=50225" class="price">Checkout</a></td>
<td align="right"><img src="images/bag.png" alt="checkout" width="35" height="33" border="0" usemap="#Map4" /></td>
</tr>
</table>
<map name="Map4" id="Map42">
<area shape="rect" coords="9,4,28,29" href="#" />
</map>
<map name="Map4" id="Map4">
<area shape="rect" coords="9,4,28,29" href="#" />
</map></td>
</tr>
</table></td>
</tr>
<tr>
<td><table width="930" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="332" valign="top"><table width="390" border="0" cellspacing="0" cellpadding="20">
<tr>
<td valign="top"><a href="rings.php?id=<?php echo $row_rs_items['id']; ?>""><img src="uploads/<?php echo $row_rs_items['image']; ?>" alt="" border="0" /></a></td>
</tr>
</table></td>
<td width="598" valign="top"><table width="540" border="0" cellspacing="0" cellpadding="20">
<tr>
<td width="230" valign="top"><table width="230" border="0" cellspacing="0" cellpadding="0">
<tr>
<td valign="top"><p><span class="ringname"><?php echo $row_rs_items['name']; ?></span><br />
<span class="detailprice">£<?php echo $row_rs_items['price']; ?></span><br />
<?php echo $row_rs_items['size']; ?><br />
<?php echo $row_rs_items['description']; ?></p></td>
</tr>
<tr>
<td valign="top"> <?php
$list = $row['size'];
$listarray = explode(',',$list);
echo '<select name="size">
<option value="all">All</option>';
foreach($listarray as $size) {
echo '<option value="'.$size.'">'.$size.'</option>';
}
echo '</select><br />';
?></td>
</tr>
</table></td>
<td width="230"> </td>
</tr>
</table></td>
</tr>
</table></td>
</tr>
<tr>
<td bgcolor="#BBCACC"> </td>
</tr>
</table>
</div></td>
</tr>
<tr>
<td><table width="410" border="0" cellpadding="10" cellspacing="0">
<tr>
<td class="copyright"><a href="login.php" class="small">© 2010 Leylas Design</a> : Terms & conditions : Delivery</td>
</tr>
</table></td>
</tr>
</table>
</body>
</html>
<?php
mysql_free_result($rs_style);
mysql_free_result($rs_colour);
mysql_free_result($rs_size);
mysql_free_result($rs_items);
?>
I see the dropdown that says Size, and it contains choices...
All
L
M
N
Is that not correct?
All
L
M
N
Is that not correct?
ASKER
Hi Yoder,
It's the option on the detail page not on the menu. It's where the user selects the size they want to purchase which is why the sizes are different for each product hence the need to dynamic.
Sorry about that, should have explained!
It's the option on the detail page not on the menu. It's where the user selects the size they want to purchase which is why the sizes are different for each product hence the need to dynamic.
Sorry about that, should have explained!
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
only you have to split this database value
$value=array which is return field of size
$size= split(",",$value);
simply you can get array after that show this array using for each
I hope useful for u.
Thanks
Mehul Panchal
$value=array which is return field of size
$size= split(",",$value);
simply you can get array after that show this array using for each
I hope useful for u.
Thanks
Mehul Panchal
ASKER
Perfect, thanks!
$string="L,M,N,O";
$array = explode(",", $string);
Then populate the dropdown from the $array elements using foreach() or similar array function.