簡體   English   中英

同名的PHP echo POST變量

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM