使用任意命名的php变量

时间:2013-11-19 15:52:35

标签: php mysql sql

我的目标是提取SQL表的3列的每个值。虽然,我想从不同的表中提取这些值,这取决于所选列表类型的值。 Name和Reg_Date列对于所有表都具有相同的名称。尽管如此,与ID对应的列的名称可以是ID_Doctor,ID_Nurse或ID_Patient。如何将$ POST ['listtype']附加到$ ID 并能够在echo中使用它? 下面是我尝试过的代码,虽然echo总是返回字符串ID_Doctor,ID_Nurse或ID_Patient,依赖于$ _POST ['listtype']的值。

$ID = '$ID_' .$_POST['listtype'];

while($count < $pages_c)
{
  while ($rows = mysql_fetch_array($results)) 
  { 
    extract($rows); 
    $numrows++;
    echo "<tr><td>$ID</td><td>$Name</td><td>$Reg_Date</td></tr>";
  }
$count++;
}

2 个答案:

答案 0 :(得分:4)

您可以使用variable variables来完成此任务。

echo "<tr><td>${$ID}</td><td>$Name</td><td>$Reg_Date</td></tr>";

请注意,您无需使用extract来获取$rows数组中的值。您可以使用$rows['key']语法直接阅读它们。

while ($rows = mysql_fetch_array($results)) 
{ 
    $numrows++;
    echo "<tr><td>{$rows[$ID]}</td><td>{$rows['Name']}</td><td>{$rows['Reg_Date']}</td></tr>";
}

附注:自PHP 5.5起,{@ 1}}函数已弃用,将来将被删除。我建议您坚持使用MySQLiPDO

答案 1 :(得分:0)

echo "<tr><td>",$rows[$ID],"</td><td>$Name</td><td>$Reg_Date</td></tr>";