使用php中的爆炸显示来自数据库的数据

时间:2014-11-27 11:25:07

标签: php sql explode

我有一个名为“test”的表。我想从一列中检索数据。每行都有多个与昏迷分开的数据。如何在下拉列表中显示列的所有数据?

ID | Qualification
1  | BE,Phd,ME
2  | MCA,MBA
3  | MBA

如何在下拉列表中显示Qualification列的所有数据?输出应该如下

BE
Phd
ME
MCA
MBA
MBA

2 个答案:

答案 0 :(得分:0)

遍历行并通过爆炸规则创建每行的数组。然后将数组合并在一起。像这样:

//Example data TODO: replace with your table data
$rows[0]['Qualification'] = 'a,b,c'; 
$rows[1]['Qualification'] = 'a,b,c'; 

$qualificationArray = array();
foreach($rows as $rowData)
{
    $rowDataArray = explode(',',$rowData['Qualification']);
    $qualificationArray = array_merge($qualificationArray,$rowDataArray);
}

然后使用qualificationArray创建一个下拉列表

echo '<select name="qualification">';
foreach($qualificationArray as $qualification)
{
    echo '<option value="'.$qualification.'">'.$qualification.'</option>';
}
echo '</select>';

所以这个输出是每个值的下拉列表:

<select name="qualification">
    <option value="a">a</option>
    <option value="b">b</option>
    <option value="c">c</option>
    <option value="a">a</option>
    <option value="b">b</option>
    <option value="c">c</option>
</select>   

答案 1 :(得分:0)

首先,读取数据库中的所有数据:

$quals = array();  // This is the array where we are going to store all the data.

if ($result = $db->query("SELECT * FROM `test`"))
{
    while ($row = $result->fetch_assoc())
    {
        $quals[$row['ID']] = $row['Qualification'];
    }
}

这些行现在以$quals格式存储在$quals[ID] = CommaSeperatedQualifications中。

接下来,按

创建下拉列表
  1. 遍历$quals中的每个元素。
  2. 将以逗号分隔的列表Qualification分隔为一系列元素,例如$list
  3. 进一步浏览$list并打印下拉菜单的<option>
  4. 例如:

    // now create a drop-down
    echo '<select name="list_of_quals">';
    foreach ($quals as $id => $value)
    {
        $list = explode(',', $value);    
        foreach ($list as $item)
        {
            echo '<option value="' . $id . '">' . $item . '</option>';
        }
    }
    echo '</select>';