我是php的新手,我在网上发现了一小段代码,这对于我想要的几乎是完美的,但是对于三个部分(功能,经理和区域),它显示的是ID而不是名称,保存在与ID链接的其他表(函数,管理器和区域)中作为外键
函数(functionID,Functionname) 经理(经理ID,经理姓名) 区域(zoneID,Zonename)
所以我希望表格显示名称而不是id,如果有人可以帮助我会非常感激
<html>
<head>
<title></title>
</head>
<body >
<?
$con = mysql_connect ("localhost","xxx","xx");
if (!$con){
die("can not connect: " . mysql_error());
}
mysql_select_db("xx",$con);
//////Displaying Data/////////////
$id=$_GET['requestID']; // Collecting data from query string
if(!is_numeric($id)){ // Checking data it is a number or not
echo "Data Error";
exit;
}
$q=mysql_query("select * from requests where requestID=$id ");
$row=mysql_fetch_object($q);
echo mysql_error();
echo "<table>";
echo "
<tr bgcolor='#f1f1f1'><td><b>Function</b></td><td>$row->functionID</td></tr>
<tr><td><b>Manager</b></td><td>$row->managerID</td></tr>
<tr bgcolor='#f1f1f1'><td><b>Zone</b></td><td>$row->zoneID</td></tr>
<tr><td><b>Headcount Request</b></td><td>$row->Headcountrequest</td></tr>
<tr bgcolor='#f1f1f1'><td><b>Utilisation</b></td><td>$row->Utilisation</td></tr>
<tr><td><b>Current Headcount</b></td><td>$row->Currentquarterheadcount</td></tr>
<tr bgcolor='#f1f1f1'><td><b>Entered By</b></td><td>$row->Enteredby</td></tr>
<tr><td><b>Start Date<br>(YYYY-MM-DD)</b></td><td>$row->Startdate</td></tr>
";
echo "</table>";
////////////////////
?>
</body>
</html>
答案 0 :(得分:1)
更改此行:
$q=mysql_query("select * from requests where requestID=$id ");
到此:
$q=mysql_query("select r.*, f.Functionname, m.Managername, z.Zonename from requests as r inner join functions as f on r.functionID = f.functionID inner join managers as m on r.managerID = m.managerID inner join zones as z on r.zoneID = z.zoneID where r.requestID=$id ");
然后改变:
echo "
<tr bgcolor='#f1f1f1'><td><b>Function</b></td><td>$row->functionID</td></tr>
<tr><td><b>Manager</b></td><td>$row->managerID</td></tr>
<tr bgcolor='#f1f1f1'><td><b>Zone</b></td><td>$row->zoneID</td></tr>
<tr><td><b>Headcount Request</b></td><td>$row->Headcountrequest</td></tr>
<tr bgcolor='#f1f1f1'><td><b>Utilisation</b></td><td>$row->Utilisation</td></tr>
<tr><td><b>Current Headcount</b></td><td>$row->Currentquarterheadcount</td></tr>
<tr bgcolor='#f1f1f1'><td><b>Entered By</b></td><td>$row->Enteredby</td></tr>
<tr><td><b>Start Date<br>(YYYY-MM-DD)</b></td><td>$row->Startdate</td></tr>
";
为:
echo "
<tr bgcolor='#f1f1f1'><td><b>Function</b></td><td>$row->Functionname</td></tr>
<tr><td><b>Manager</b></td><td>$row->Managername</td></tr>
<tr bgcolor='#f1f1f1'><td><b>Zone</b></td><td>$row->Zonename</td></tr>
<tr><td><b>Headcount Request</b></td><td>$row->Headcountrequest</td></tr>
<tr bgcolor='#f1f1f1'><td><b>Utilisation</b></td><td>$row->Utilisation</td></tr>
<tr><td><b>Current Headcount</b></td><td>$row->Currentquarterheadcount</td></tr>
<tr bgcolor='#f1f1f1'><td><b>Entered By</b></td><td>$row->Enteredby</td></tr>
<tr><td><b>Start Date<br>(YYYY-MM-DD)</b></td><td>$row->Startdate</td></tr>
";
假设我已正确输入所有内容,您现在应该使用* ID字段将4个表连接在一起,并从每个连接表中选择* name字段。无法访问您的数据库并且没有手动编写SQL,这可能不完全正确,但应该让您走上正确的道路。