2013-05-02 61 views
0

林新的PHP從另一個表中選擇一個名字,我發現了一小塊代碼在線的這對我想要的東西幾乎是完美的,但是,對於三段(函數,經理&區)是顯示與ID爲外鍵使用外鍵

功能(functionID,Functionname) 管理者(經理ID,Managername) 帶鏈接的ID而不是名稱,這是在其他表中保存(功能,管理者&區)(了zoneid ,區域名稱)

所以我想表中顯示,而不是ID名稱,如果有人可以幫助我將v ERY非常感激

<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> 

回答

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> 
"; 

假設我已經輸入了這一切正確,你現在應該可以加入你4代表一起使用* ID字段,並選擇從每個連接的表*名稱字段的查詢。沒有獲得您的數據庫,並用手在一段時間,這可能不是完全正確的具有不寫SQL,而應該把你在正確的道路上。

+0

非常完美非常感謝你! – user2317823 2013-05-02 01:27:08

+0

很高興幫助。儘管這是唯一的答案,但您應該將其標記爲已接受,以便其他人可以看到好的綠色複選標記並知道它對您有用。 – 2014-09-26 17:38:48