0

我是 php 新手,我在网上找到了一小段代码,几乎可以满足我的要求,但是对于其中三个部分(函数、管理器和区域),它显示的是 ID 而不是名称,它们保存在其他以 ID 作为外键链接的表(功能、管理器和区域)

功能 (functionID, Functionname) 管理器 (managerID, Managername) 区域 (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>
4

1 回答 1

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,这可能并不完全正确,但应该让您走上正确的道路。

于 2013-05-02T00:58:36.470 回答