2012-01-05 2 views
-1

좋아요. 왼쪽에 두 개의 테이블이 있습니다. 한 테이블을 "사람"이라고하고 두 번째 테이블을 "개"라고 부릅니다. 나는 ID로 테이블에 합류 떠났다 ". 이름"PHP echo 동일한 이름의 POST 변수

"SELECT * FROM people 
     LEFT JOIN dog ON people.PK = dog.fk"; 

내 문제는 두 테이블은 열 제목을 가지고있다 내가 $ _POST [ '이름'] 변수에서 반향 때 두 필드 모두에 대해 동일한 값을주고 나는

echo $_POST['people.name'] 
echo $_POST['dog.name'] 

을 시도했지만이 잘못된해야하므로이 데이터를 반환하지 않습니다. 누군가 내 열 이름을 변경하지 않고도 문제를 해결할 수 있습니까? 감사합니다.

답변

1

수퍼 글로벌에는 양식에서 제출 한 데이터가 들어 있습니다. 데이터베이스 쿼리의 데이터를 포함하지 않습니다. 당신이 원하는 데이터는 이제 $result라는 변수에 포함되어

$result = database_query (
    "SELECT * FROM people LEFT JOIN dog ON people.PK = dog.fk" 
); 

: 당신은 아마이 (의사) 그런 짓을. 액세스 방법은 데이터베이스 액세스 방법에 따라 다르지만 일반적으로 결과 배열에서 연관 배열로 행을 가져옵니다.

$row = database_fetch_assoc($result); 

그러면 배열 $row에 데이터가 포함됩니다.

echo $row['name']; 

당신은 모두 name 컬럼의 값에 액세스 할 수 있도록하기 위해 쿼리에서 열 이름을 별칭을해야 할 수도 있습니다.

+0

당신이 맞습니다, 나는이 게시물을 가상하고 그냥 포스트를 생각하지 않고 쓰고있었습니다. 예, $ row 또는 이와 비슷한 것을 사용하고 컬럼 별칭을 지정해야합니다. 감사합니다. – user982853

1

별칭 열 이름과 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 데이터로 채워지려는 것을 의미합니다. DB에서 오는 데이터는 실제로 POST 데이터가 아닙니다.

+0

Downvote : 명백하게 대답하여 문제를 잘못 나타냅니다. – Hammerite

+0

나는 그렇게 생각하지 않습니다. 나에겐 그의 SQL 결과가 같은 필드 이름이 두 번 사용 되었기 때문에 "부러진"것처럼 보이고 그는 어떤 이유로 $ _POST에 저장한다. – ThiefMaster

+1

+1 정확히 입력하고 있습니다. 그러나 나는 필드를 인용하기 위해 역 따옴표를 추가 할 것이다. – mvds