从数组中获取值并将其存储到SQL搜索的变量中

时间:2018-05-21 02:20:17

标签: php html sql

也许有一种更简单的方法可以做到这一点,但我需要项目从下拉菜单中选择患者。然后,当下拉菜单中有一个值时,文本字段需要从该下拉菜单(数组)中获取NHS编号,以便可以将其发布到其他位置。

            <select name="patient" class="textbox" required>
            <option value="">Select a patient</option>                    
            <?php
            include 'dbconnection.php';

            $sql = "SELECT * FROM clients ORDER by firstname ASC";
            $result = mysqli_query($conn, $sql);
            $result = $conn-> query($sql); 
            while($row=mysqli_fetch_array($result))
            {
            ?>
                <option value="<?php echo $row["firstname"]." ".$row["lastname"]; ?>">

                <?php echo $row["firstname"]." ".$row["lastname"] .", ".$row["addressl1"].", ".$row["addressl2"].", ".$row["county"].", ".$row["postcode"].", ".$row["nhsnum"]; ?></option>
                <?php

                $nhs = $row['nhsnum'];
            }                                       
            ?>
            </select> 

             <?php

            $sql = "SELECT * FROM clients WHERE nhsnum = $nhs ";
            $result = mysqli_query($conn, $sql);
            $result = $conn-> query($sql); 
            while($row=mysqli_fetch_array($result))
            {
            ?>
                <input type="text" placeholder="NHS number" readonly value=" <?php echo $row["nhsnum"]; ?>"> 


                <?php

            }                                       
            ?>

正如您所看到的,我创建了$ nhs的虚拟变量,但是它是一个静态变量,并且在下拉列表中没有根据用户选择进行更改。任何人都可以解释我如何将两者合并在一起。

DB setup

2 个答案:

答案 0 :(得分:0)

我认为你应该在while循环之外声明$ nhs

答案 1 :(得分:0)

使用已建议的AJAX或表单提交按钮。您的第二个查询应该是您的AJAX或提交的表单所在的位置。如果使用get或post方法,请使用$ _GET或$ _POST来截取选项值。将该值分配给$ nhs,然后按原样使用。

将选项值设置为您想要的$ nhs值,而不是人名。使用$ _POST

的示例
if(isset($_POST['patient'])){
    $nhs=$_POST['patient'];
}else{
    // whatever code you want to handle a non-submitted value.
}

添加其他代码以防止SQL注入。