2012-11-04 1 views
2

클라이언트 테이블에서 일부 사용자 데이터를 선택하고 다른 사용자 정의 필드 값을 선택하려고합니다. 내 문제는 결과를 통해 반복되는 것 같습니다. 하나의 사용자 정의 값 필드 당 중복 클라이언트 행이 계속 표시됩니다.whmcs는 하나의 클라이언트 당 2 개의 사용자 정의 필드 값을 선택합니다. PHP mysql

이것은 클라이언트 주소 세부 정보와 클라이언트 당 올바른 값을 다른 테이블 tblcustomfieldvalues에서 가져 오는 SQL 쿼리입니다.

SELECT 
    tblhosting.userid, 
    tblclients.id, 
    tblclients.firstname, 
    tblclients.city, 
    tblclients.state, 
    tblclients.country, 
    tblclients.postcode, 
    tblclients.companyname, 
    tblclients.ip, 
    tblcustomfields.id, 
    tblcustomfields.fieldname, 
    tblcustomfieldsvalues.fieldid, 
    tblcustomfieldsvalues.value 
FROM tblhosting,tblclients,tblcustomfields,tblcustomfieldsvalues 
WHERE tblclients.id IS NOT NULL 
AND tblclients.id = tblhosting.userid 
AND tblcustomfields.id=tblcustomfieldsvalues.fieldid 
AND tblcustomfieldsvalues.relid=tblhosting.id 
AND tblcustomfieldsvalues.fieldid between 291 and 292 

내 문제는 그래서 각 클라이언트와 tblclients 주소에 대한 tblcustomfieldsvalues에서 두 개의 행 값을 얻는 방법이다.

쿼리를 분할하고 while 및 forech 루프를 사용했지만 클라이언트 테이블에서 중복 값을 계속 가져 오려고했습니다. 또는 클라이언트 당 하나의 customfield 값.

답변

0

"SELECT tblhosting.userid, tblclients.id, tblclients.firstname, tblclients.city, tblclients.state, tblclients.country, tblclients.postcode, tblclients.companyname, tblclients.ip, tblcustomfields.id, tblcustomfields.fieldname, tblcustomfieldsvalues.fieldid는 tblhosting, tblclients, tblcustomfields, tblcustomfieldsvalues ​​"FROM tblcustomfieldsvalues.value

코드는 끔찍한 찾고 같다. 구조를 볼 수없는 사람은 읽을 수 없습니다. 테이블간에 페칭을하려면 동의어와 'join'키워드를 사용해야합니다.


@edit 이제 모양이 바뀌 었습니다.

+0

저는 while 루프로 문제를 해결하고 foreach 루프를 폭발 시켰습니다. 위의 쿼리는 whmcs 데이터베이스 테이블 연결에 대한 문서가없는 클라이언트에서 사용자 정의 필드 값을 얻는 데 적합합니다. – user1797390

관련 문제