테스트 사이트 - 개발 중인 베타 버전입니다

특정 컬럼의 값 중 제일 큰 값을 중심으로 다른 컬럼들의 값 출력 채택완료

Willfor716 2년 전 조회 1,943

안녕하세요.

 

출력 할려는 값의 조건은

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 번인 것은 어떻게 해야 하는지도 모르겠네요. ㅠㅠ

 

고수님들의 감사한 조언 부탁드립니다.

 

</strong></p>

<p><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>";

          }

      } </p>

<p>        </p>

<p>         else {</p>

<p>             echo "<tr><td colspan='3'>No results found</td></tr>";</p>

<p>      }</p>

<p>        ?>

</table></p>

<p><strong>

 

댓글을 작성하려면 로그인이 필요합니다.

답변 3개

채택된 답변
+20 포인트

1. php mysql에 있는 로그인 된 id 값

== 로그인한 회원 일까요

 

2. 오늘부터 30일 전까지의 mb_point 컬럼의 값 중 5 보다 큰 숫자 중 제일 큰 값으로 가장 최근의 값

== 어떤 테이블에 있는 mb_point 인가요

g5_member.mb_point에는 날짜 정보가 없습니다.

 

 

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

엑스엠엘
2년 전
SELECT mb_date, product_a, product_b, used_minutes, mb_point
FROM g5_member_prodcut
WHERE mb_id = ?
And mb_point > 5
AND mb_date >= '$ninetyDaysAgo'

4.만약 a 컬럼의 값이 모두 5 이하일 경우 product_a는 '선택함', product_b는 '선택하지 않음', used_minutes는 '계속 사용함' 로 출력
=
a 컬럼이 무엇인가요?
5 이상이면 어떻게 하나요?
엑스엠엘
2년 전
while ($row = $result->fetch_assoc()) {
if( $row[] <=5)
Echo"product_a는 '선택함', product_b는 '선택하지 않음', used_minutes는 '계속 사용함' 로 출력";
Else {
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>";
}

댓글을 작성하려면 로그인이 필요합니다.

조건을 하나씩 보시고 출력할때 배열을 다시 정의해서 다시넣는 방법을 해보세요.

1~3번까지는 where  절과 order by 를 통해 정렬하고 

순서대로 출력하면서 

배열을 다시 만들어 조건에 담아 넣는 방식을 쓰면 해결될거 같아요

 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

wodud3073
2년 전

if문 쓰세요

if( $row['컬럼명'] <= 5 && $row['컬럼명'] <= 5 && $row['컬럼명'] <= 5 ){   $row['product_a'] = '선택함';

  $row['product_b'] = '선택하지않음';

  $row['product_c'] = '선택하지않음'; }

 

이부분을 while문 위에 추가

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인