[英]Display result if Table names are the same due to INNER JOIN
我不知道該怎么解釋我的問題
請查看我的代碼也許這可以更好地說明
$sele = "SELECT asatbl_1.asaName, asatbl_1.asaSurname, asatbl.asaName, asatbl.asaSurname, asalink.linkammount
FROM asatbl AS asatbl_1 INNER JOIN (asalink INNER JOIN asatbl ON asalink.asaid = asatbl.asaid) ON asatbl_1.asaSales_ref = asalink.asaSales_ref
WHERE asalink.asaSales_ref=1001";
$result = mysql_query($sele);
echo "<table border='1' cellpadding='10'>";
echo "<tr> <th>ASA Name</th> <th>ASA Surname</th> <th>Recipient Name</th> <th>Recipient Surname</th> <th>Amount</th></tr>";
if($mak = mysql_num_rows($result) > 0){
while($row = mysql_fetch_assoc($result)){
echo "<tr>";
echo '<td>' . $row['asaName'] . '</td>';
echo '<td>' . $row['asaSurname'] . '</td>';
echo '<td>' . $row['asatbl_1.asaName'] . '</td>';
echo '<td>' . $row['asatbl_1.asaSurname'] . '</td>';
echo '<td>' . $row['li nkammount'] . '</td>';
echo '<td><a href="edit.php?id=' . $row['id'] . '">Edit</a></td>';
//echo '<td><a href="deleteuser.php?id=' . $row['id'] . '">Delete</a></td>';
echo "</tr>";
如您所見,我使用了asatbl_.asaName和asatbl_1.Surname,但不起作用
預先感謝您的幫助
問候
對結果中的字段名稱使用別名:
SELECT asatbl_1.asaName as fld1, asatbl_1.asaSurname as fld2, ... and so on.
然后要檢索數據,請參考結果集中的別名
$row['fld1']
$row['fld2']
...
希望這會有所幫助
我發現您嘗試使用$row['asatbl_1.asaName']
和$row['asatbl_1.asaSurname']
來獲取字段值的方式出現問題。 您只需刪除列名之前的表名,就可以簡單地使用$row['asaName']
和$row['asaSurname']
。
在PHP中運行任何SQL查詢之后,該查詢中的列都使用。(。dot)並通過諸如SELECT **table_name.column_name** FROM table_name
符號提取了表名,您不應使用表名訪問PHP查詢結果中的列值在$row['asatbl_1.asaName']
和$row['asatbl_1.asaSurname']
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.