특정 컬럼의 값 중 제일 큰 값을 중심으로 다른 컬럼들의 값 출력
본문
안녕하세요.
출력 할려는 값의 조건은
1. php mysql에 있는 로그인 된 id 값
2. 오늘부터 30일 전까지의 mb_point 컬럼의 값 중 5 보다 큰 숫자 중 제일 큰 값으로 가장 최근의 값
3. 2번의 값을 중심으로 컬럼 product_a, product_b, used_minutes의 값을 가져와 html 테이블이 출력
4. 만약 a 컬럼의 값이 모두 5 이하일 경우 product_a는 '선택함', product_b는 '선택하지 않음', used_minutes는 '계속 사용함' 로 출력
이렇게 출력할려고 합니다.
그런데 잘 안되네요.
여러가지 방법을 해 보았는데...
이 방법이 제일 비슷하게 한 것 같은데 역시나 출력이 안되네요. ㅠㅠ
특히, 조건 4 번인 것은 어떻게 해야 하는지도 모르겠네요. ㅠㅠ
고수님들의 감사한 조언 부탁드립니다.
<table class="hdrf-a02">
<tr>
<th class="hdrf-a01">a 조건</th>
<th class="hdrf-a01">b 조건</th>
<th class="hdrf-a01">지속성</th>
</tr>
<?php
$today = date('Y-m-d');
$ninetyDaysAgo = date('Y-m-d', strtotime('-90 days'));
$mb_id = $member['mb_id'];
$sql = "SELECT mb_date, product_a, product_b, used_minutes, mb_point
FROM g5_member_prodcut
WHERE mb_id = ? mb_point > 5 AND mb_point <= (SELECT MAX(mb_point) FROM g5_member_prodcut WHERE mb_date BETWEEN '$ninetyDaysAgo' AND '$today')";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while ($row = $result->fetch_assoc()) {
echo "<tr>";
echo "<td class='hdrf-a02'>" . $row['product_a'] . "</td>";
echo "<td class='hdrf-a02'>" . $row['product_b'] . "</td>";
echo "<td class='hdrf-a02'>" . $row['used_minutes'] . "</td>";
echo "</tr>";
}
}
else {
echo "<tr><td colspan='3'>No results found</td></tr>";
}
?>
</table>
!-->
답변 3
1. php mysql에 있는 로그인 된 id 값
== 로그인한 회원 일까요
2. 오늘부터 30일 전까지의 mb_point 컬럼의 값 중 5 보다 큰 숫자 중 제일 큰 값으로 가장 최근의 값
== 어떤 테이블에 있는 mb_point 인가요
g5_member.mb_point에는 날짜 정보가 없습니다.
if문 쓰세요
if( $row['컬럼명'] <= 5 && $row['컬럼명'] <= 5 && $row['컬럼명'] <= 5 ){
$row['product_a'] = '선택함';
$row['product_b'] = '선택하지않음';
$row['product_c'] = '선택하지않음';
}
이부분을 while문 위에 추가
조건을 하나씩 보시고 출력할때 배열을 다시 정의해서 다시넣는 방법을 해보세요.
1~3번까지는 where 절과 order by 를 통해 정렬하고
순서대로 출력하면서
배열을 다시 만들어 조건에 담아 넣는 방식을 쓰면 해결될거 같아요