如何将值从html输入标记传递到php代码?

如何将值从html输入标记传递到php代码?,php,html,sql,forms,Php,Html,Sql,Forms,我的patient_display.php代码通过p_ID调用patient_history.php文件。下面是我的代码 patient_display.php: echo '<form name="Patient" action="patient_history_display.php" method="get">'; $pid=$_GET["patient_id"]; echo '<input type="text" name="p_id" value= '.$pid.'

我的patient_display.php代码通过p_ID调用patient_history.php文件。下面是我的代码

patient_display.php:
echo '<form name="Patient" action="patient_history_display.php" method="get">';
$pid=$_GET["patient_id"];
echo '<input type="text" name="p_id" value= '.$pid.' >';
</form>

patient_history.php:
$result = mysqli_query($con,"SELECT P.P_F_NAME, P.P_L_NAME,P.P_ADDR,     round(datediff(now(),P.P_DOB)/365) AS P_AGE, D.D_DESC, A.A_DESC 
FROM P_HAS_A  PA, patient P, P_HAS_D PD, n_provide_m NM, disease D, allergy A 
WHERE P.P_ID = PD.P_ID AND PD.D_ID = D.D_ID AND P.P_ID = PA.P_ID AND PA.A_ID = A.A_ID AND P.P_ID='{$_GET["p_id"]}';");
$pid=$_GET["p_id"];
patient_display.php:
回声';
$pid=$\u GET[“患者id”];
回声';
patient_history.php:
$result=mysqli_query($con,“选择P.P_F_NAME,P.P_L_NAME,P.P_ADDR,round(datediff(now(),P.P_DOB)/365)作为P_AGE,D.D_DESC,A.A_DESC
从P_有A PA,患者P,P_有D PD,n_提供m NM,疾病D,过敏A
其中P.P_ID=PD.P_ID和PD.D_ID=D.D_ID和P.P_ID=PA.P_ID和PA.A_ID=A.A_ID和P.P_ID='{$_GET[“P_ID”]}';
$pid=$\u GET[“p\u id”];
然而,它抛出了以下错误 尖叫:已忽略对的错误抑制
注意:在

中未定义的索引:p\u id只需在使用$\u GET和$\u POST之前检查其值集(是否存在)。 您可以使用“@”、“isset”、“strlen”和“!空的。 所以你的情况是

 if(isset($_GET['patient_id'])) { 
   $id = $_GET['patient_id'];
   echo '<input type="text" name="p_id" value= '.$pid.' >';
 }
if(isset($\u GET['patient\u id']){
$id=$\u GET['patient\u id'];
回声';
}

对于
$\u GET['p\u id']

也一样,我认为sql中有错误。试试这个:

$pid=$_GET["p_id"];
$result = mysqli_query($con,"SELECT P.P_F_NAME, P.P_L_NAME,P.P_ADDR,     round(datediff(now(),P.P_DOB)/365) AS P_AGE, D.D_DESC, A.A_DESC 
FROM P_HAS_A  PA, patient P, P_HAS_D PD, n_provide_m NM, disease D, allergy A 
WHERE P.P_ID = PD.P_ID AND PD.D_ID = D.D_ID AND P.P_ID = PA.P_ID AND PA.A_ID = A.A_ID AND P.P_ID='$pid'");
试试这个

echo '<form name="Patient" action="patient_history.php" method="get">';
$pid=$_GET["p_id"];
echo '<input type="text" name="p_id" value= '.@$pid.' >';
</form>

删除$pid=$\u获取[“患者id”];来自patient_display.php:您的意思是更改如下代码吗?回声';你在那一行中得到了p_id的值吗?哦,对不起,我没有看到下面这一行。就像@Jenz说的,你得到pid的值了吗?在哪一行你得到了错误。共享完整的错误消息。是。在where子句中。我可以使用post表单而不是get表单吗?如果您得到$pid的值,那么查询应该可以工作。请尝试在我更新的答案中使用查询。为什么不使用联接而不是长where子句?我不知道您是否在该页面中获得$pid的值。如果没有,请尝试使用post。我尝试了post。传递的值是“查看患者历史”。我认为从这段代码中可以看到“回声”;回声';而是实际的p_id值。你能在这里粘贴你的url参数吗?url参数。。。很抱歉,我没有收到您的邮件。您使用的URL$\u get['patient\u id']和$\u get['p\u id']我在SQL查询中用于将数据与数据库进行比较。
$pid = $_GET['p_id'];
$result = mysqli_query($con,"SELECT P.P_F_NAME, P.P_L_NAME,P.P_ADDR,
round(datediff(now(),P.P_DOB)/365) AS P_AGE, D.D_DESC, A.A_DESC 
FROM P_HAS_A  PA, patient P, P_HAS_D PD, n_provide_m NM, disease D, allergy A 
WHERE P.P_ID = PD.P_ID AND PD.D_ID = D.D_ID AND P.P_ID = PA.P_ID AND PA.A_ID = A.A_ID AND
P.P_ID='{$pid';");