MySQL
cat_id cat_group cat_name cat_status
1 Vehicles Cars 1
2 Vehicles Motorcycles 1
3 Properties Houses 1
4 Properties Apartments 1
5 Electronics Cameras 1
6 Electronics Gadgets 1
HTML
<select id="category" name="category">
<optgroup label="Vehicles">
<option value="1">Cars</option>
<option value="2">Motorcycles</option>
</optgroup>
<optgroup label="Properties">
<option value="3">Houses</option>
<option value="4">Apartments</option>
</optgroup>
<optgroup label="Electronics">
<option value="5">Cameras</option>
<option value="6">Gadgets</option>
</optgroup>
</select>
PHP
function cat_option()
{
global $db;
}
问题
如何为类别循环创建 PHP 函数?因此,在表单上,我只需通过 cat_option()
调用它,结果将类似于 HTML
最佳答案
您可以使用多维数组在一个查询中完成此操作:
<?php
$opts = array();
# select all active categories
$qr = mysql_query('SELECT cat_id, cat_group, cat_name FROM categories WHERE cat_status = 1 ORDER BY cat_id ASC');
# go through all results
while ($qa = mysql_fetch_assoc($qr)) {
$opts[$qa['cat_group']][$qa['cat_id']] = $qa['cat_name'];
# e.g. $opts['Vehicles'][1] = 'Cars'
}
/*
# now your array looks like:
$opts = array(
'Vehicles' => array(
1 => 'Cars',
2 => 'Motorcycles',
),
'Properties' => array(
3 => 'Houses',
4 => 'Apartments',
),
'Electronics' => array(
5 => 'Cameras',
6 => 'Gadgets',
)
);
*/
?>
<!-- now output it -->
<select id="category" name="category">
<?php foreach (array('Vehicles', 'Properties', 'Electronics') as $label): ?>
<optgroup label="<?php echo $label ?>">
<?php foreach ($opts[$label] as $id => $name): ?>
<option value="<?php echo $id ?>"><?php echo htmlspecialchars($name); ?></option>
<?php endforeach; ?>
</optgroup>
<?php endforeach; ?>
</select>
关于php - 如何为 mysql 创建一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4423209/