[英]PHP echo POST variable with same name
好吧,我有兩個左連接表。 讓我們將表稱為“人”,將表稱為“狗”。 我已經通過ID離開了表格:
"SELECT * FROM people
LEFT JOIN dog ON people.PK = dog.fk";
我的問題是兩個表都有一個列標題“名稱”。 當我回顯$ _POST ['name']變量時,它為我嘗試過的兩個字段提供相同的值
echo $_POST['people.name']
echo $_POST['dog.name']
但這不會返回任何數據,因此必須不正確。 有人可以幫助我解決我的問題而不必更改我的列名。 謝謝。
別名列名稱,不要使用SELECT *
而是手動指定列:
SELECT people.name AS people_name, dog.name AS dog_name
FROM people
LEFT JOIN dog ON people.PK = dog.fk
然后,您可以通過['people_name']
和['doc_name']
訪問這些字段。
根據您的表結構和實際需要的字段,您還可以SELECT table1.*, table2.somecol AS t2_somecol
如果您需要第一個表中的所有內容,但僅需要第二個表中的幾個字段,這將很方便。
哦,您真的不應該將內容放入$_POST
。 它是用PHP填充POST數據的-來自數據庫的數據實際上不是POST數據。
$_POST
超全局包含從表單提交的數據。 它不包含來自數據庫查詢的數據。 您可能會執行以下操作(偽代碼):
$result = database_query (
"SELECT * FROM people LEFT JOIN dog ON people.PK = dog.fk"
);
現在,所需的數據包含在名為$result
的變量中。 如何訪問它取決於您的數據庫訪問方法,但是通常您會從結果對象中獲取一行,可能是作為關聯數組。
$row = database_fetch_assoc($result);
然后數組$row
將包含您的數據。
echo $row['name'];
您可能需要為查詢中的列名稱加上別名,以便能夠訪問兩個name
列的值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.