회원목록을 sort해서 표시하고 싶습니다.

회원목록을 sort해서 표시하고 싶습니다.

QA

회원목록을 sort해서 표시하고 싶습니다.

본문

전체 회원 목록을 정렬해서 가져오고 싶습니다.

아래처럼 하면 될까 싶어서 해봤는데 역시나 회원이름과 아이디를 가져오질 못하네요

 


// ./test/t.php
<?php
include_once('./_common.php');   //그누보드 변수 사용
?>
<br>
회원전체 목록 (이름 가나다 순)
<br>
<?php
 $i=0;
while($i<=500) {  //전체 500명
?>
    <table style="width: 100%; text-align: center;">        
        <tr font-weight:bold;>    
            <td><?php echo $i=$i+1 ?></td>
            <td><?php echo $i=$i+1 ?></td>
            <td><?php echo $i=$i+1 ?></td>
            <td><?php echo $i=$i+1 ?></td>
            <td><?php echo $i=$i+1 ?></td>
        </tr>    
        <tr style="vertical-align: top">    
            <td><?php echo $list[$i]['mb_name']; ?></td>
            <td><?php echo $list[$i]['mb_name']; ?></td>
            <td><?php echo $list[$i]['mb_name']; ?></td>
            <td><?php echo $list[$i]['mb_name']; ?></td>
            <td><?php echo $list[$i]['mb_name']; ?></td>
        </tr>    
    </table><hr>
<?php } ?>
<br>
회원전체 목록 (ID A-Z 순)
<br>
<?php
 $i=0;
while($i<=500) {  //전체 500명
?>
    <table style="width: 100%; text-align: center;">        
        <tr font-weight:bold;>    
            <td><?php echo $i=$i+1 ?></td>
            <td><?php echo $i=$i+1 ?></td>
            <td><?php echo $i=$i+1 ?></td>
            <td><?php echo $i=$i+1 ?></td>
            <td><?php echo $i=$i+1 ?></td>
        </tr>    
        <tr style="vertical-align: top">    
            <td><?php echo $list[$i]['mb_id']; ?></td>
            <td><?php echo $list[$i]['mb_id']; ?></td>
            <td><?php echo $list[$i]['mb_id']; ?></td>
            <td><?php echo $list[$i]['mb_id']; ?></td>
            <td><?php echo $list[$i]['mb_id']; ?></td>
        </tr>    
    </table><hr>
<?php } ?>

 

회원 이름이나 아이디를 sort해서 어떻게 가져오나요?

이 질문에 댓글 쓰기 :

답변 4

댓글은 이미지 첨부를 하지 못하는군요.

아무튼 샘플 데이터, 아래처럼 뜹니다. 끝!

 

988537230_1642429176.4881.png

가나다 순

SELECT mb_no, mb_id, mb_name FROM g5_member WHERE mb_name REGEXP '^[가-힣]' ORDER BY mb_name ASC LIMIT 500;

 

A-Z 순

SELECT mb_no, mb_id, mb_name FROM g5_member WHERE mb_name REGEXP '^[A-Z]' ORDER BY mb_name ASC LIMIT 500;

 

foreach(...)

while ($row=sql_fetch(...

등 질문처럼 무한 반복에 빠지지 않게, 존재하는 레코드만 출력하도록 해야 합니다.

시도는 해봤어요? 아! 위쪽은 이름순, 아래는 아이디순이었군요.


<?php
include_once('./_common.php');   //그누보드 변수 사용

// 숫자, 영문, 한글명 순이니까, 한글 이름이 먼저 나오게 하려면 아래처럼
// ORDER BY IF(mb_name REGEXP '^[가-힣]', 0, 1) ASC, mb_name ASC 정렬해주면 됩니다.
$member_names = sql_query("SELECT mb_no, mb_id, mb_name FROM {$g5['member_table']} ORDER BY mb_name ASC LIMIT 500"); // IF(mb_name REGEXP '^[가-힣]', 0, 1) ASC
$names_rows = sql_num_rows($member_names);
?>
<br>
회원전체 목록 (이름 가나다 순)
<br>
<table border="1" style="width: 100%; text-align: center;">
<thead><tr><th>번호</th><th>아이디</th><th>이름</th></tr></thead>
<tbody>
<?php
while ( $row=sql_fetch_array($member_names) ) {  //최대 500명
?>
        <tr>
            <td><?=$names_rows?></td>
            <td><?=$row['mb_id']?></td>
            <td><?=$row['mb_name']?></td>
        </tr>
<?php $names_rows--; } ?>
</tbody>
</table>
<br>

<?php
$member_ids = sql_query("SELECT mb_no, mb_id, mb_name FROM {$g5['member_table']} ORDER BY mb_id ASC LIMIT 500");
$ids_rows = sql_num_rows($member_ids);
?>
회원전체 목록 (ID A-Z 순)
<br>
<table border="1" style="width: 100%; text-align: center;">
<thead><tr><th>번호</th><th>아이디</th><th>이름</th></tr></thead>
<?php
while ( $row=sql_fetch_array($member_ids) ) { //최대 500명
?>
        <tr>
            <td><?=$ids_rows?></td>
            <td><?=$row['mb_id']?></td>
            <td><?=$row['mb_name']?></td>
        </tr>
<?php $ids_rows--; } ?>
</tbody>
</table>
<br>


기본적인 php지식과 수학에 대한 이해가 없으면 할 수 없는 일 같군요
아이디는 동일하게 $member1 --> $member2 만 바꾸면 됩니다
 
$i= 0;
while ( $row=sql_fetch_array($member1) ) $listA[] = $row;
 
$n= ceil( count($listA) / 5); // 갯수가 27개면 6번 loop를 해야 25개 후 나머지 2개를 출력
for($m=0; $m < $n; $m++){
 $i = $m * 5; //(0, 5, 10 ~~~) 5씩 증가하는 수열의 일반항이라고 말하기도 민망한 산수
?>
    <table style="width: 100%; text-align: center;">
        <tr font-weight:bold;>
            <td><?=($i+1)?></td>
            <td><?=($i+2)?></td>
            <td><?=($i+3)?></td>
            <td><?=($i+4)?></td>
            <td><?=($i+5)?></td>
        </tr>
        <tr style="vertical-align: top">
            <td><?=$listA[$i]['mb_name']?></td>
            <td><?=$listA[$i+1]['mb_name']?></td>
            <td><?=$listA[$i+2]['mb_name']?></td>
            <td><?=$listA[$i+3]['mb_name']?></td>
            <td><?=$listA[$i+4]['mb_name']?></td>
        </tr>
    </table><hr>
<?php } ?>

<?php
include_once('./_common.php');   //그누보드 변수 사용
?>
    <table width="600px" align="center" border='1'>       
<?php
//회원전체 목록 (이름 가나다 순)
$sql="SELECT * FROM `g5_member` ORDER BY `g5_member`.`mb_name` DESC ";
    $result = sql_query($sql);
    while ($row = sql_fetch_array($result))
    {
?>

        <tr>   
   <td><?php echo $row['mb_no']; ?></td>
   <td><?php echo $row['mb_id']; ?></td>   
   <td><?php echo $row['mb_name']; ?></td>

        </tr>   
 
<?php } ?>

  </table>

      <table width="600px" align="center" border='1'> 
<?php
//회원전체 목록 (ID A-Z 순)
$sql="SELECT * FROM `g5_member` ORDER BY `g5_member`.`mb_id` DESC ";
    $result = sql_query($sql);
    while ($row = sql_fetch_array($result))
    {
?>

        <tr>   
   <td><?php echo $row['mb_no']; ?></td>
   <td><?php echo $row['mb_id']; ?></td>   
   <td><?php echo $row['mb_name']; ?></td>

        </tr>   
 
<?php } ?>

  </table>

 

2084452681_1642423842.4777.png

답변을 작성하시기 전에 로그인 해주세요.
전체 123,536 | RSS
QA 내용 검색

회원로그인

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