리스트 게시글 묶음처리 > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

리스트 게시글 묶음처리 정보

리스트 게시글 묶음처리

본문

오류가 나는곳의 주소를 알려주시면 더 빠르고 정확하게 답변 받을 수 있습니다.

오류 주소 :

게시판에 주문하기,장바구니 기능을 달았는데
게시판 리스트에서 특정조건(글쓴이 이름, 등록시간) 으로 목록에 하나만 나오게 하려면 어떤 방식으로 해야 될까요?

---------------------------
1. 제목 | 이름1 | 날짜1
2. 제목 | 이름1 | 날짜1
3. 제목 | 이름2 | 날짜2
4. 제목 | 이름1 | 날짜3
5. 제목 | 이름1 | 날짜3
---------------------------
위의 리스트부분을 아래처럼

---------------------------
1. 제목 | 이름1 | 날짜1 [2]
2. 제목 | 이름2 | 날짜2
3. 제목 | 이름1 | 날짜3 [2]
---------------------------

제목을 클릭하면 view에서는 해당 게시글 을 보여줘야 되는데 이건 크게 어려울 것 같지 않은데
리스트 부분을 어떻게 처리해야 될지 잘모르겠네요~

감사합니다.

댓글 전체

ID    => $list[0~][id]
제목 => $list[0~][title]
이름 => $list[0~][name]
날짜 => $list[0~][date]

배열이 위와 같을 경우 날자를 프라이머리키로 설정 하여 카운트 값을 저장하여 배열 합니다.
추후 분리하기 위하여 "|" 와 같은 인자를 사이에 끼워줍니다.


$data = array();
$newlist = array();
$j=0;
for($i=0; $i<count($list); $i++){
    if($data[$list[$i][date]]){
          $data[$list[$i][date]][id]+= "|".$i;
     }else{
          $data[$list[$i][date]][id] = $i;
          $newlist[$j][datename] = $list[$i][date];
          $j++;
     }
}


위와 같은 방식으로 배열한 것을 다시 풀어 해지시면 됩니다.


for($i=0; $i<count($newlist) $i++){
     $newlist[$i][countlist] = explode("|", $newlist[$i][datename]);
     $newlist[$i][datecount] = count($newlist[$i][countlist]);
     for($a=0; $a<$newlist[$i][datecount]; $a++){
          $ii = $newlist[$i][countlist][$a];
          echo $list[$ii][title];
          echo $list[$ii][name];
          echo $list[$ii][date];
          echo $list[$ii][datecount];
     }
}


생각 나는 대로 코딩해서 틀린곳도 있을듯..ㅋㅋ
카운딩에 -1 해야 하나???  ㅋㅋㅋ

배열 하고자 하는 것을 프라이머리 키로 놓구 재배열 하는 방법이 있구요.

출력하면서 처음 출력된 값과 똑같은 date 값을 찾아 카운딩하고 카운딩된 값이 뒤로 나타나지 않도록 특정값을 주는 방법도 있습니다.



for($i=0; $i<count($list); $i++){
     // 배열의 nocount 라는 키값을 집어 넣어 그값이 없다면 출력 하도록한다.
     if(!$list[$i][nocount]){
          // 같은 날자의 개시물이 몇개인지 카운딩 한다.
          $list[$i][datecount] = 1;
          // 같은 날자의 개시물이 있는지 확인후 카운팅 한다.
          for($a=0; $a<sount($list); $a++){
              // 같은 날이 있는지 검사한다.
              if($list[$i][date] == $list[$a][date]){ 
                    // 같은 날자의 개시물이 다시 출력되지 않도록 설정한다.
                    $list[$a][nocount] = true; 
                    // 같은 날짜 임으로 카운딩 증가.
                    $list[$i]datecount]++;
               }
          }
          // 이곳에서 부터 출력 하고자 하는 내용을 출력 하면 됩니다.
         echo $list[$i][title]." | ".$list[$i][name]." | ". $list[$i][date]." | [".$list[$i][datecount]."]<br>";
         // 출력끝.............
     }
}



이방법이 젤루 쉬울듯 합니다.
물론 테스트를 않해본것이라. 수정은 본인이 집접 하세요..^^
전체 66,558 |RSS
그누4 질문답변 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT