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


While loop only creates one dropdown box per client (PHP/MySQL)

我试图使用两个查询来设置每个医生的多个下拉菜单。到目前为止,这是工作的,但不幸的是,它只拉项目。

我想有所有的"专业知识"内可用的下拉框(和专业知识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循环包含第二个查询,该查询设置下拉列表(拉入所有'expertise'值)。

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 />";
}

如果你们谁能帮我,我将非常感激!感谢您的宝贵时间!

您正在发送新查询,同时迭代先前查询的未缓冲结果。这行不通。对于第一个查询,尝试使用mysql_query而不是mysql_unbuffered_query,如下所示:

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

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

mysql包已弃用。请考虑采用mysqli扩展。

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