while循环只为每个客户端创建一个下拉框(PHP / MySQL)

时间:2013-03-03 10:43:10

标签: php mysql drop-down-menu while-loop

我正在尝试使用两个查询为每位医生设置多个下拉菜单。到目前为止,这是有效的,但不幸的是,它只提取项目。

我希望在下拉列表中提供所有“专家知识”(以及专业知识ID作为选项值)。

我已经设置了以下while循环,但是我没有成功为每个Client_ID生成一个下拉列表。

第一个查询(下面)从区域

中提取客户端ID
$client_id = $_GET['doc_id'];
$physician_id_expertise = $client_id;

$doctor_query = 'SELECT * ';
$doctor_query.= 'FROM `primarycare_expertise` ';
$doctor_query.= 'WHERE `physician_id`=' . $client_id . ' ';
$doctor_result = mysql_unbuffered_query( $doctor_query );

while循环包含第二个查询,用于设置下拉列表(提取所有'专业知识'值)。

while ($doctor_row = mysql_fetch_array( $doctor_result ))
{
    echo "<select name='doc_id_expertise_" . $doctor_row['pe_id'] . "' id='doc_id_expertise_" . $doctor_row['pe_id'] . "'>";

    $expert_query = 'SELECT * FROM `expertise` ';
    $expert_result = mysql_unbuffered_query( $expert_query );

    while ($expert_row = mysql_fetch_array( $expert_result )){
        if($doctor_row['expertise_id'] == $expert_row['expertise_id'])
        {
            $selected = "selected";
        } else {
            $selected = "";
        }
        echo "<option $selected value=" . $expert_row['expertise_id'] . ">" . $expert_row['expertise'] . "</option>";
    }

    echo "</select>";
    echo "<br />";
}

如果你们中的任何人能够帮助我,我将非常感激!谢谢你的时间!

2 个答案:

答案 0 :(得分:1)

您在迭代上一次查询的无缓冲结果时发送新查询。这不起作用。尝试使用mysql_query代替mysql_unbuffered_query进行第一次查询,如下所示:

$doctor_result = mysql_query (
    "SELECT * FROM primarycare_expertise WHERE physician_id='$client_id'");

对于后续查询,您仍然可以使用mysql_unbuffered_query,因为它们不会重叠。

有关详细信息,请参阅以下page

答案 1 :(得分:0)

不推荐使用mysql包BTW。考虑采用mysqli扩展名。

http://www.php.net/manual/en/book.mysqli.php