PHP 변수 $ accountnumber를 프로필 페이지를 보는 사용자의 것으로 설정했습니다. 이 페이지에는 데이터베이스에서 채워지는 사용자 정보가 포함 된 블록이 있으며 우리가 가지고있는 모든 제품의 목록이 있으며 고객이 가지고있는 제품 옆에 체크 표시를하고 싶습니다. 그것. 여기 SQL 테이블의 모든 레코드를 표시하고 해당 레코드를 다른 테이블과 일치시키는 방법은 무엇입니까?
내 테이블입니다 :products
id | name | url | weight
100 p1 p1.html 1
101 p2 p2.html 2
102 p3 p3.html 3
103 p4 p4.html 4
104 p5 p5.html 5
105 p6 p6.html 6
products_accounts
account_number | product_id
0000001 100
0000001 104
0000001 105
0000002 101
0000002 103
0000002 104
0000002 105
0000003 100
0000003 102
나는 왼쪽 외부 조인하려고했으나 $의 ACCOUNTNUMBER 특정 PRODUCT_ID의 products_accounts 테이블에 ACCOUNT_NUMBER 일치 여부를 결정 할 수 없습니다. 나는이 작업을 수행 할 수 있었다있는 유일한 방법은이 같은 WHERE 문을 추가했다 :
WHERE products_acccounts.account_number = '$accountnumber'
그것은 제품에 적절한 클래스를했다,하지만 그들 만이 아닌 모두의 한 제품을 보여 주었다. 여기
내 코드입니다 : 고객이 P2와 P5를 제외한 모든 제품이있는 경우
$sql ="
SELECT
products.id,
products.name,
products.url,
products_accounts.account_number
FROM
products
LEFT OUTER JOIN
products_accounts
ON
products.id = products_accounts.product_id
";
$sql .="
GROUP BY
products.id
ORDER BY
products.weight
";
$result = mysql_query($sql);
while($row = mysql_fetch_array($result)) {
echo '<span class="'; if($row['account_number'] == '$accountnumber')
{ echo'product_yes">'; } else { echo 'product_no">'; }
echo '<a href="' . $row['url'] . '">' . $row['name'] . '</a><br /></span>';
}
, 그것은 다음과 같이 표시되어야합니다 :
✓P1
P2 ✓P3 ✓P4 P5 ✓P6
나는 이것에 관해 좋은 느낌을 가지고 있었다! :) 그리고 나는 옳았다! 당신이 옳았! 이것을 복사하여 텍스트 편집기에 붙여 넣기 만하면 3 가지 작업 만 완료하면됩니다! _1. while 문과 일치하는 복수형 "rowproducts"의 인쇄상의 오류를 수정했습니다 ...... _ _2. "WHERE account_number = '$ accountnumber'AND product_id = '$ product_id'"값의 작은 따옴표를 추가했습니다. ...... _3. $ 클래스를 이미 설정 한 항목에 변경하고 " _ – nitsuj
클래스 1을 고쳐야한다는 것을 알았습니다. 두 번째 픽스가 필요했는지는 확실하지 않았지만 항상 정상적으로 작동했기 때문에 MySQL이 펑키 할 수 있습니다. 첫 번째 편집, 즉 빠르게 입력하고 작업하는 동안 나는이 웹 사이트에 있지 않은 것처럼 행동하는 것입니다. – bowlerae
그래, 필요하지 않았는데, 모든 것이 검사되었다. 왼쪽 외부를 시도하기 전에 나의 첫번째 시도. 조인은이 메서드의 무언가를 수행하는 것이 었습니다 - while 문에 쿼리를 넣는 것이 었 습니다만, 저는 그 방법이 모두 잘못되었다고 생각했기 때문에 그것을 올바르게 처리하지 않았습니다.이를 지워 줘서 고마워요! – nitsuj